Перевод с десятичной в двоичную, восьмиричную, шестнадчатиричную систему счисления
Здравствуйте, подскажите может есть какая функция в jquery или как мне перевести с десятичной в двоичную, восьмиричную, шестнадчатиричную систему счисления числа?
|
|
Sweet,
написал вот так вот: var n = $('#calcs').val(); $('#calcs').val(n.toString(2)); Неработает, пишет: Invalid number of parameters, expected 0 |
Цитата:
var n = +$('#calcs').val(); $('#calcs').val(n.toString(2)); И #calcs это что? Инпут? И что в нем находится? |
Цитата:
|
Цитата:
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> </head> <body> <input type="text" id="calcs"> <input type="button" id="butt" value="bin"> <script> $('#butt').click(function(){ var n = +$('#calcs').val(); $('#calcs').val(n.toString(2)); }); </script> </body> </html> Для надежности еще можно сделать n = parseInt(n, 10); |
jsnb,
Вот мой код: <!DOCTYPE html> <html> <head> <title></title> <link type="text/css" rel="stylesheet" href="calculate.css"/> <script type="text/javascript" src="jquery.js"></script> <script src="calculate.js"></script> </head> <body> <div id="calculator"> <div class="clr"> <input id="calcs" type="text"/> </div> <div class="clr"> <button class="button perevod">2</button> <button class="button perevod">8</button> <button class="button perevod">16</button> <button class="button perevod">32</button> </div> <div class="clr"> <button class="button oneclick">+</button> <button class="button oneclick">-</button> <button class="button oneclick">/</button> <button class="button oneclick">*</button> </div> <div class="clr"> <button class="button">1</button> <button class="button">2</button> <button class="button">3</button> <button class="button">4</button> </div> <div class="clr"> <button class="button">5</button> <button class="button">6</button> <button class="button">7</button> <button class="button">8</button> </div> <div class="clr"> <button class="button">9</button> <button class="button">0</button> <button id="calculate">=</button> <button id="clear" class="button">c</button> </div> </div> </body> </html> /** * Created by Pashka on 29.04.14. */ $(document).ready(function(){ $('.button').click(function(){ $('#calcs').val($('#calcs').val() + $(this).html()); }); $('#clear').click(function(){ $('#calcs').val(''); }); $('#calculate').click(function(){ $('#calcs').val(eval($('#calcs').val())); }); $('.perevod').click(function(){ var n = +$('#calcs').val(); $('#calcs').val(n.toString(2)); }); $('input').keypress(function(e) { var verified = (e.which == 8 || e.which == undefined || e.which == 0) ? null : String.fromCharCode(e.which).match(/[^0-9]/); if (verified) { e.preventDefault(); } }); }); Оно то работает, но как-то не совсем правильно, ведь 2 в двоичной системе будет 10, а не 10110? |
jsnb,
Работает, только учитывает символы те, что прописаны в самой кнопке в html. Я сделал пустую кнопку и так работает. А как сделать чтобы не учитывало символы из html? |
jsnb,
все, я понял, там класс button мешал, спасибо) |
Переводим из 10-чной в 2-чную систему счисления (на JS)
Вот, набросал на JS две функции. Из одной вызывается другая, другая иногда вызывает сама себя. В общем по-моему неплохо вышло. Может кому пригодится)
и так: //декларируем две функции: function add(razryad) { if (byte[razryad] === 0) { byte[razryad] = 1; } else { byte[razryad] = 0; add(razryad + 1); return; } } function binary(num) { var razryad = 0; for (var i = 0; i < num; i++) { add(razryad); } /* для использования подхода следования байтов "big-endian" - применяем reverse() для использования подхода следования байтов "little-endian" - reverse() - не применяем */ byte.reverse(); console.log(byte.join(" ")); return; } //var byte = [0,0,0,0,0,0,0,0]; //1 байт (8 разрядов) максимум 255 //или можно например с таким "byte" //var byte = [0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0]; //2 байта (16 разрядов) максимум 65535 //запускаем: var byte = [0,0,0,0,0,0,0,0]; //1 байт (8 разрядов) максимум 255 binary(128); // результат: 0 1 0 1 0 0 0 1 var byte = [0,0,0,0,0,0,0,0]; //1 байт (8 разрядов) максимум 255 binary(10); // результат: 0 1 0 1 0 0 0 0 var byte = [0,0,0,0,0,0,0,0]; //1 байт (8 разрядов) максимум 255 binary(128); // результат: 0 1 0 1 0 0 0 1 var byte = [0,0,0,0,0,0,0,0]; //1 байт (8 разрядов) максимум 255 binary(254); // результат: 0 1 1 1 1 1 1 1 var byte = [0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0]; //2 байта (16 разрядов) максимум 65535 binary(2017); // результат: 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 ... как то так ;) |
Часовой пояс GMT +3, время: 18:45. |