Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для Satansoft
20 / 16 / 7
Регистрация: 27.02.2012
Сообщений: 742

Bin to dec типа float

17.03.2015, 18:57. Показов 1566. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вещественное число разбито на 2 поля, целая часть и мантисса. Берем id обоих полей и их длину, пробегаемся и в 2 циклах перемножаем на соответствующие разряды двойки и выводим, на выходе NaN.NaN, что забыл?

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  function bin_to_dec()
        {
            var int_1 = document.getElementById("int_1").value;
            var float_1 = document.getElementById("float_1").value;
            var lenght_int_1 = int_1.length;
            var lenght_float_1 = float_1.length;
            var int, float;
            
            
            if (int_1 !='0' || float_1 !='0')
            {
                for(var i=lenght_int_1;i!=0;i--)
                     int += int_1[i]*Math.pow(2,i); 
                
                for(var i=-1;i!=-lenght_float_1;i--)
                     float += float_1[i]*Math.pow(2,i); 
            }
            
            document.getElementById("result_1").value = int+'.'+float;
        }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.03.2015, 18:57
Ответы с готовыми решениями:

Bin to dec типа float
Есть бинарное число вида 111111.1001, кое надо перевести в десятичную систему счисления, однако не понятно куда его занести для разбиения,...

Из bin в dec и из oct в dec
нужно создать что-то типо программного конвертера, есть edit, там вводится число, например двоичное, нажимаю button, оно конвертируется в...

Из Dec в Bin
Доброе время суток,только недавно начал изучать C#,решил написать простенький калькулятор,а теперь хочу что бы в нём,был возможен перевод...

9
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
17.03.2015, 19:32
Цитата Сообщение от Satansoft Посмотреть сообщение
Вещественное число разбито на 2 поля, целая часть и мантисса.
такого разбиения не существует
при экспоненциальной записи вещественное число представляется мантиссой (со знаком или без такового) и знаком порядка (показателем степени)

"целая часть" появляется тогда, когда число разбивают на целую и дробную части (и никакой мантиссы тогда нет)
1
 Аватар для Satansoft
20 / 16 / 7
Регистрация: 27.02.2012
Сообщений: 742
17.03.2015, 19:36  [ТС]
Цитата Сообщение от kalabuni Посмотреть сообщение
"целая часть" появляется тогда, когда число разбивают на целую и дробную части (и никакой мантиссы тогда нет)
да-да, я дробную часть мантиссой обозвал, однако кодовая часть существенней текстовой. Код оперирует 2 частями по отдельности, а затем складывает, вот тут косяк исправлен, но NaN остался.

JavaScript
1
document.getElementById("result_1").value = int+float;
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
17.03.2015, 20:25
давайте пример рассмотрим

например, вещественное число - это число ПИ == 3,1415926
представлено в виде
целой части == 3
и дробной части == 1415925
обратное преобразование заключается в сложении целой части с дробной, делённой на 10 в степени, равной количеству символов дробной части

т.е. результат равен 3 + (1415926 / 10 ^ 7)

ваш код именно это делает?
если код делает "это", то непонятно - зачем, к примеру, определяется количество символов целой части lenght_int_1? этого же не нужно вовсе
0
 Аватар для Satansoft
20 / 16 / 7
Регистрация: 27.02.2012
Сообщений: 742
17.03.2015, 20:35  [ТС]
Цитата Сообщение от kalabuni Посмотреть сообщение
если код делает "это", то непонятно - зачем, к примеру, определяется количество символов целой части? этого же не нужно вовсе
количество символов узнаются для количества итераций цикла. сам принцип перевода, к примеру, числа 111,101 = 1*2^2+1*2^1+1*2^0+1*2^(-1)+0*2^(-2)+1*2^(-3)=... Это и реализовывается. Напомню, что переводим из binary в decimal а не наоборот...
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
17.03.2015, 20:39
снова непонятно - где какая система счисления у вас?
вы можете русским языком описать конкретный пример того, что вы делаете. ну вот как я выше с числом ПИ в десятичной системе счисления
0
 Аватар для Satansoft
20 / 16 / 7
Регистрация: 27.02.2012
Сообщений: 742
17.03.2015, 20:50  [ТС]
Вещественное число в двоичной системе счисления представлено 2 полями.

Получаем содержимое поля целой части
JavaScript
1
var int_1 = document.getElementById("int_1").value;
Получаем содержимое поля дробной части
JavaScript
1
var float_1 = document.getElementById("float_1").value;
Получаем длину каждого поля
JavaScript
1
2
var lenght_int_1 = int_1.length;
var lenght_float_1 = float_1.length;
Переводим из двоичной системы счисления в десятичную целой части
JavaScript
1
2
for(var i=lenght_int_1;i!=0;i--)
int += int_1[i]*Math.pow(2,i);
Переводим из двоичной системы счисления в десятичную дробной части
JavaScript
1
2
for(var i=-1;i!=-lenght_float_1;i--)
float += float_1[i]*Math.pow(2,i);

Выводим сумму десятичных чисел в поле вывода
JavaScript
1
document.getElementById("result_1").value = int+'.'+float;
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
17.03.2015, 22:11
у вас ошибка в математике
при переводе к целой части надо прибавлять дробную нарастающим итогом, десятичная точка -- она сама "вставится" в нужное место

JavaScript
1
2
3
4
5
6
var iB = document.getElementById('int_1').value; // например '101101'
var fB = document.getElementById('float_1').value; // например '101'
var rD = 0;
for (var J = j = iB.length - 1; j >= 0; j--) rD += iB.charAt (J - j) * Math.pow (2, j);
for (var J = fB.length, j = 1 ; j <= J; j++) rD += fB.charAt (j - 1) / Math.pow (2, j);
document.getElementById ('result_1').value = rD; // получится 45,625
алгоритм подсмотрел здесь
0
 Аватар для Satansoft
20 / 16 / 7
Регистрация: 27.02.2012
Сообщений: 742
17.03.2015, 22:24  [ТС]
kalabuni, зачем так код запутывать, ещё и заменять переменные, мне до сих пор не ясно, что там происходит... и почему второй цикл идёт в плюс, если степень всегда убывает?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
17.03.2015, 23:17
Лучший ответ Сообщение было отмечено Satansoft как решение

Решение

Цитата Сообщение от Satansoft Посмотреть сообщение
зачем так код запутывать, ещё и заменять переменные
нет тут ничего запутанного, всё просто


iB - это intBinary -- целая часть в двоичном счислении
fB - это floatBinary -- дробная часть в двоичном исчислении
rD - это resultDecimal -- результат в десятичной системе счисления

что непонятного в этом названии переменных?
Цитата Сообщение от Satansoft Посмотреть сообщение
почему второй цикл идёт в плюс, если степень всегда убывает?
потому что https://www.cyberforum.ru/cgi-bin/latex.cgi?{2}^{-j} = \frac{1} {{2}^{j}}
соответственно j надо просто увеличивать

Цитата Сообщение от Satansoft Посмотреть сообщение
мне до сих пор не ясно, что там происходит
напрягитесь немного, подумайте и всё станет ясно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.03.2015, 23:17
Помогаю со студенческими работами здесь

Dec to bin
Помогите написать программу перевода из 10-ой системы счисления в 2-ую, через массив.

Dec to Bin
Здравствуйте. Скажите, какие у меня есть ошибки в коде. static int DecToBin(int Dec) { bool end = false; ...

Dec-bin конвертор
Задача состоит в том, что необходимо с помощью монитора порта при указании числа в десятичной системе счисления преобразовывать в двоичную...

Усовершенствование декодера Bin > Dec и обратно
Здравствуйте! Я работаю над проектом декодера из бинарной системы в десятичную и обратно. Создал 2 программы из бин в дес и обратно...

Усовершенствование кода декодера BIN > DEC
Здравствуйте! У меня есть проект, декодер из бинарной системы в десятичную. #include &lt;iostream&gt; #include &lt;stdlib.h&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru