Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

16-битные числа

9.9K
21 марта 2005 года
Ceasar
3 / / 21.03.2005
Извините за флуд!
Как представляется 16-битное число в памяти?
На знак отведено 1 розряд, а на порядок? и мантису? Если кто-то знает - буду весьма длагодарен!
9.5K
22 марта 2005 года
nikiforov
24 / / 21.03.2005
Цитата:
Originally posted by Ceasar
Извините за флуд!
Как представляется 16-битное число в памяти?
На знак отведено 1 розряд, а на порядок? и мантису? Если кто-то знает - буду весьма длагодарен!



16-битные числа обычно целые...
Отрицательные представлены в "дополнительном коде" (если не ошибаюсь в названии), то есть -1 соответствует 0xFFFF, -2 - 0xFFFE, и так далее.

Порядок и мантисса появляются в числах с плавающей точкой (обычно 32, 64 или 80 бит).

(Да, речь идет об архтектуре intel x86)

425
22 марта 2005 года
sq_deep
498 / / 18.02.2005
Цитата:
Originally posted by Ceasar
Извините за флуд!
Как представляется 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

Форматы чисел большей длины отличаются только количеством знаков мантиссы и характеристики.

Желаю удачи в Ваших изысканиях.

Да простят флуд мне.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог