нужна помощь в доработке программы..
..это моя первая программа на JS. Программа предназначена для перевода десятичных чисел в двоичные. Проблема возникает при вводе 0, 1, а также необходимо заполнять массив нолями чтобы данные выводились в формате хххх (четыре цифры), например: десятичная двойка должна выводиться в формате 0010. Заранее благодарю за помощь.
//Программа для перевода десятичных чисел в двоичные.. (с) var number = prompt('Введите любое целое десятичное число:', ''); //Вводим любое целое десятичное число var residue = number; //переменная для записи остатка от деления в массив var quotient = number; //переменная для записи частного от деления на 2 var result = []; //создаем пустой массив для записи результата вычисления //if (quotient == 1) { //если введенное число равно 1 //document.write('1') //выводим 1 //} else { //..иначе do { //цикл вычисления двоичного числа quotient /= 2; quotient = (Math.floor(quotient)); residue = quotient; residue %= 2; result.push(residue); //записываем результат целочисленного деления в конец массива } while (quotient !== 1); //} result.reverse(); if (number %2 == 0) { result.push('0') } else { result.push('1') } //result.length; //document.write(result.length) a = result.join(''); document.write(a) |
Программа для перевода десятичных чисел в двоичные..
Vados73,
<script> function fn(number) { var result = []; while (number) { result.push(number % 2); number = Math.floor(number / 2); } result.reverse(); result = "0000" + result.join(""); result = result.slice(-4); return result; } for (var i = 0; i < 16; i++) { document.write(i + " => " + fn(i) + "<br>"); }; </script> |
alert(20 .toString(2)); |
j0hnik,
:lol: |
рони,
:-? |
j0hnik,
всё нормально, не переживай. :) |
что смешного? парню проще будет понять такую конструкцию
|
если ему нужно таблицу вывести можно так же сделать
<script> for(var i = 0; i<100; i++) document.write(i+'=>'+ i .toString(2)+'<br>'); </script> |
j0hnik,
Цитата:
|
в образовательных учреждениях мотивировать умеют (писать какую нибудь ерунду, которая итак уже есть)
|
Цитата:
|
Цитата:
var n, m = [], b = ''; if(n = prompt('Number')) { if(n > 1) { for(var i = k = 0; k < n; i++) { k = Math.pow(2, i); m.push(k); } m.pop(); while(i = m.pop()) b += n >= i ? (n -= i, 1) : 0; } else b = n; alert(b) } В основе то всего, включая и toString(), обычная бинарная логика. А двоичное представление имеет еще и множество форматов, к примеру двоично-десятичный, который используется сплошь и рядом, к примеру в часах. Ну-ка попробуйте перевести десятичное в двоично-десятичное представление используя toString(). ;) |
<script> // Это же JS тут все просто и понятно =) var i=0,s=''; NumToBinStr=n=>{var i=0,s='';while(s+=n&1<<i++?1:0,i<31);return s}; while ( s+=i+'>>'+NumToBinStr(i)+'<br>',i++<954); document.write (s); </script> |
Часовой пояс GMT +3, время: 06:42. |