16-битные числа
Как представляется 16-битное число в памяти?
На знак отведено 1 розряд, а на порядок? и мантису? Если кто-то знает - буду весьма длагодарен!
Извините за флуд!
Как представляется 16-битное число в памяти?
На знак отведено 1 розряд, а на порядок? и мантису? Если кто-то знает - буду весьма длагодарен!
16-битные числа обычно целые...
Отрицательные представлены в "дополнительном коде" (если не ошибаюсь в названии), то есть -1 соответствует 0xFFFF, -2 - 0xFFFE, и так далее.
Порядок и мантисса появляются в числах с плавающей точкой (обычно 32, 64 или 80 бит).
(Да, речь идет об архтектуре intel x86)
Извините за флуд!
Как представляется 16-битное число в памяти?
На знак отведено 1 розряд, а на порядок? и мантису? Если кто-то знает - буду весьма длагодарен!
Хочется задать Вам встречный вопрос: а зачем Вам всё это надо знать? Вероятно, Вас не устраивает, как процессор складывает числа :D Ну, да бог с ним. Расскажу в двух словах.
Первое, формат чисел зависит от архитектуры процессора. Поэтому дальше речь пойдёт только об X86.
Второе, 16-битные числа с плавающей точкой не используются ни в одном из распространённых процессоров. Целые числа любой длины представляются в дополнительном коде. Для положительного числа дополнительный код совпадает с двоичным представлением, например, в 16 битах
5 = 0000 0000 0000 0101.
Для отрицательного числа дополнительный код делается так. Берём такое же положительное число, инвертируем все его цифры (двоичные или другие в соответствии с системой счисления) и прибавляем единицу. Таким образом
-5 = 1111 1111 1111 1011.
Ну, а что касается чисел с плавающей точкой, то тут, конечно, всё сложнее, но принцип такой. Простейшее 32-битное представление имеет формат
SCCC CCCC CMMM MMMM MMMM MMMM MMMM MMMM.
Здесь S — знак;
CCC CCCC C — характеристика;
MMM MMMM MMMM MMMM MMMM MMMM — мантисса.
Знак = 0 для положительных чисел и 1 для отрицательных.
Характеристика представляет собой уменьшенный на 127 двоичный порядок числа.
Мантисса — двоичное дробь вида 1.XXXXXXXXXXXXXXXXXXXXXXX. При этом старшую единицу нет смысла хранить, и она не хранится.
Таким образом, например,
6 = 0100 0000 1100 ... 0000
-2 = 1100 0000 0000 ... 0000
Форматы чисел большей длины отличаются только количеством знаков мантиссы и характеристики.
Желаю удачи в Ваших изысканиях.
Да простят флуд мне.