Перевод с десятичной в двоичную, восьмиричную, шестнадчатиричную систему счисления
Здравствуйте, подскажите может есть какая функция в 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, время: 03:35. |