представление числа



Автор ****** задал вопрос в разделе Другие языки и технологии

Помогите получить двоичную форму внутреннего представления числа 16,8125 (в 4- х байтовой ячейке) и получил лучший ответ

Ответ от Миоко Таканава[гуру]
И каким должно быть это внутреннее представление: с фиксированной точкой или с плавающей?
В обоих случаях сначала нужно получить двоичное представление числа. Перевод осуществляется отдельно для целой и дробной частей. Для целой нужно последовательно делить 16 на 2 пока частное не станет равно нулю, и выписывать целые части от деления и остатки:
16 / 2 = 8 остаток 0
8 / 2 = 4 остаток 0
4 / 2 = 2 остаток 0
2 / 2 = 1 остаток 0
1 / 2 = 0 остаток 1
Теперь остатки записываются снизу вверх: 10000 – двоичное представление целой части.
(Это можно и в уме сделать 16(10)=10000(2)).
Для дробной части нужно последовательно умножать на 2, выписывать целые части. Затем брать дробную часть и снова умножать пока не останется 0 или пока не надоест.
0,8125 * 2 = 1,625 целая часть 1
0,625 * 2 = 1,25 целая 1
0,25 * 2 = 0,5 целая 0
0,5 * 2 = 1,0 целая 1
Теперь целые части записываются сверху вниз после запятой: 0,1101 – двоичное представление дробной части. После объединения целой и дробной частей получается двоичное представление исходного числа: 16,8125(10) = 10000,1101(2).
Если представление с фиксированной точкой, то нужно знать, где находится запятая. Вы этого не указали. Предположим, что запятая находится посередине этих 4-х байт, тогда число запишется как 0000000000010000,1101000000000000. Если разбить по байтам, то:
00000000 00010000 11010000 00000000 (00 10 D0 00 в 16-ричном виде) .
В памяти число будет располагаться так: 00000000 11010000 00010000 00000000 или в шестнадцатеричном виде 00 D0 10 00.
Глава 2. Если нужно представление с плавающей точкой.
Так как ничего не написано о способах представления мантиссы и порядка, предположим, что имеется в виду стандартный согласно IEEE 754 формат Single длиной 4 байта.
Single имеет следующие поля: s(1 разряд) e(8 разрядов) m(23 разряда) , где
s – знак числа (0 – положительное, 1 – отрицательное) ;
e – характеристика (другие названия экспонента, порядок с избытком)
m – нормализованная мантисса без целой части.
Число положительное, значит s = 0.
Далее нужно нормализовать мантиссу. Для этого нужно запятую в числе сдвинуть влево так, чтобы слева от неё осталась только одна единица: 10000,1101 -> 1,00001101. Сдвинута на 4 разряда.
Получаем экспоненту. Для этого нужно к количеству разрядов, на которое была сдвинута запятая, прибавить смещение порядка (для single это 127):
127 + 4 = 131. В двоичном представлении это 10000011 (перевод целых чисел см. выше) .
Мантисса хранится без целой части. В 23 разрядах она будет представлена как 00001101000000000000000.
Все поля получены, теперь можно собрать всё вместе:
01000001100001101000000000000000 – это двоичное представление исходного числа с плавающей точкой.
Если разбить по байтам: 01000001 10000110 10000000 00000000 (41 86 80 00 в шестнадцатеричном виде) .
В памяти это число будет храниться так: 00000000 10000000 10000110 01000001 (00 80 86 41 в 16-ричном представлении).Источник:

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Помогите получить двоичную форму внутреннего представления числа 16,8125 (в 4- х байтовой ячейке)

представление числа в виде произведения-что это?
разложение на множители?
D Mak
Мастер
(2231)
ну,
подробнее...
спросили в Другое
помогите пожалуста Замени суммой в разрядных слагаемых числа: 263301,7300162

Сумма разрядных слагаемых - это представление числа в виде суммы его разрядов

263301 =
подробнее...
спросили в Lertha
подскажите, как перевести целое число в строку и наоборот на языке программирования C (желательно с обьяснением))))
Из строки - в число.
Способ 1. Функция strtol() преобразует строковое представление числа в
подробнее...
спросили в Ичня
Помогите перевести числа в разные системы счисления. HELP!!!
Наиболее часто встречающиеся системы счисления -- это двоичная, шестнадцатеричная и десятичная. Как
подробнее...
спросили в Философия 1 февраля
Вибрирующие числа и их смысл?
Как нам известно, Пифагор, его ученики и последователи сократили все числа до цифр от 1 до 9
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Jeep
Java. Работа с вещественными числами.
3.9 там точно не будет лежать, однако может быть число, близкое к 4.0 (хотя вряд ли в данном
подробнее...
спросили в 1232 год
Значение числа 666 в китайской архитектуре и философии? в частности, в летнем дворце императора 666 комнат. почему?..
И кстати!
Схуяли три шестерки это дьявольские цифры?

шестьсот шестьдесят шестьподробнее...

как записывается число в стандартном виде?
В науке и технике встречаются как очень большие, так и очень маленькие числа. Например, большим
подробнее...
спросили в Другое
стандартный вид числа?
В науке и технике встречаются как очень большие, так и очень маленькие числа. Например, большим
подробнее...
спросили в 456 год
Что означают 666, что это за число?
2/3 от круглого числа 1000 равны 666,(6), а при округлении «вниз» — 666.
666 — число Смита, то
подробнее...
спросили в Другое
как перевести число в стандартный вид?
В науке и технике встречаются как очень большие, так и очень маленькие числа. Например, большим
подробнее...
спросили в Техника
вопрос по информатике. расскажите, своими словами, про дополнительный код (когда нужно представить число с минусом)
Ну вот 8–и битовое представление числа. Каждый бит нумеруется «слева – направо» от 0 до 7.
подробнее...
спросили в Техника
Найти наименьшее число с заданным количеством делителей (1024) Сабж в теме
Сначала надо определиться с максимальным значением, достигаемым произведением вида:

а^n
подробнее...
спросили в 1202 год Super GT
Когда в математике появилось число < 0 >ноль ???
Впервые нуль появился в древневавилонской системе исчисления, он использовался для обозначения
подробнее...
спросили в 514 год 842 год
Составить программу, печатающую для целого числа k от 1 до 99 фразу: "мне k лет". При этом учитывать, что при некоторых
Это хорошая задачка. Ее решили разработчики сети "ВКонтакте", за что им большое спасибо.
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*