![]() |
base2 » base10(string)
На днях столкнулся с проблемой преобразования двоичного числа в десятичную строку (для вывода на экран). Казалось бы, в большинстве языков программирования есть функции преобразования этого рода, но не в этом случае:
Хорошего дня. |
Ответ: base2 » base10(string)
А что ты получишь делением двоичного числа на 10? Тут как обычно возведение двойки в степень и сложение.
|
Ответ: base2 » base10(string)
Классическое: "читаем биты справа налево, преобразуем каждую единицу в число по принципу 2^позиция бита. Прибавляем к итоговому числу. И так по всем битам числа." Не подходит?
Для чисел большой размерности надо прикручивать математику больших чисел на строках. |
Ответ: base2 » base10(string)
Как я упомянул, преобразовать нужно не в двоичное число, а из двоичного. Результат хранится исключительно как строка для вывода на экран.
Цитата:
Код:
function toString(number) { Цитата:
Строковая математика - неплохой вариант, хотя мне кажется что она будет работать по скорости не очень быстро. Думаю это можно немного исправить таблицей констант (2^n), но нужное количество итераций не очень радует. |
Ответ: base2 » base10(string)
Что-то я совсем не понял... в числе что хранится десятичное число типа 1010011010? зачем на 10 делить то? :4to:
Тут надо битовый сдвиг и битовое И с единицей, потом возведение двойки в степень и сложение. |
Часовой пояс GMT +4, время: 04:04. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot