
04.05.2014, 17:02
|
Аспирант
|
|
Регистрация: 29.04.2014
Сообщений: 82
|
|
Перевод с десятичной в двоичную, восьмиричную, шестнадчатиричную систему счисления
Здравствуйте, подскажите может есть какая функция в jquery или как мне перевести с десятичной в двоичную, восьмиричную, шестнадчатиричную систему счисления числа?
|
|

04.05.2014, 17:13
|
Профессор
|
|
Регистрация: 16.03.2010
Сообщений: 1,618
|
|
|
|

04.05.2014, 17:23
|
Аспирант
|
|
Регистрация: 29.04.2014
Сообщений: 82
|
|
Sweet,
написал вот так вот:
var n = $('#calcs').val();
$('#calcs').val(n.toString(2));
Неработает, пишет: Invalid number of parameters, expected 0
|
|

04.05.2014, 17:41
|
Профессор
|
|
Регистрация: 15.03.2014
Сообщений: 561
|
|
Сообщение от Dark19
|
написал вот так вот:
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 это что? Инпут? И что в нем находится?
|
|

04.05.2014, 17:52
|
Аспирант
|
|
Регистрация: 29.04.2014
Сообщений: 82
|
|
Сообщение от jsnb
|
Попробуй так: var n = +$('#calcs').val();
$('#calcs').val(n.toString(2));
И #calcs это что? Инпут? И что в нем находится?
|
Да это инпут, там числа (скрипт калькулятора)написал так как Вы сказали, работает, но переводит как-то не так, вроде. Перевожу двойку в двоичную систему выдает 10110, должно же 10 вывести?
|
|

04.05.2014, 17:56
|
Профессор
|
|
Регистрация: 15.03.2014
Сообщений: 561
|
|
Сообщение от Dark19
|
Да это инпут, там числа (скрипт калькулятора)написал так как Вы сказали, работает, но переводит как-то не так, вроде. Перевожу двойку в двоичную систему выдает 10110, должно же 10 вывести?
|
Не знаю, что ты там написал, но вот так работает:
<!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, 04.05.2014 в 17:59.
|
|

04.05.2014, 17:59
|
Аспирант
|
|
Регистрация: 29.04.2014
Сообщений: 82
|
|
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?
|
|

04.05.2014, 18:05
|
Аспирант
|
|
Регистрация: 29.04.2014
Сообщений: 82
|
|
jsnb,
Работает, только учитывает символы те, что прописаны в самой кнопке в html. Я сделал пустую кнопку и так работает. А как сделать чтобы не учитывало символы из html?
|
|

04.05.2014, 18:07
|
Аспирант
|
|
Регистрация: 29.04.2014
Сообщений: 82
|
|
jsnb,
все, я понял, там класс button мешал, спасибо)
|
|

18.06.2017, 23:25
|
Новичок на форуме
|
|
Регистрация: 18.06.2017
Сообщений: 3
|
|
Переводим из 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
... как то так 
Последний раз редактировалось ms-pro, 26.08.2017 в 11:53.
|
|
|
|