Вопросы о двух дополнениях и представлениях IEEE 754 - PullRequest
0 голосов
/ 25 января 2010

Как мне найти значение дополнения двухбайтового числа 0xFF72, равное "?

  1. Начну ли я с преобразования 0xFF72 в двоичный файл?
  2. инвертировать биты.
  3. добавить 1 в двоичной записи. // потерян здесь.
  4. запишите десятичное число.

Я просто не знаю ..

Кроме того,

Как насчет 8-байтового двойного числа со значением: 0x7FF8000000000000. Его значение в виде числа с плавающей запятой?

Ответы [ 3 ]

2 голосов
/ 25 января 2010

Я бы подумал, что это домашнее задание, но для конкретного двойника, который указан. 0x7FF8000000000000 - это тихий NaN согласно спецификации IEEE-754, не очень интересное значение для домашнего задания:

  • Знаковый бит очищен.
  • Поле экспоненты равно 0x7ff, наибольшему возможному показателю степени, что означает, что число является либо бесконечностью, либо NaN.
  • Поле значимости * 0x8000000000000. Поскольку оно не равно нулю, число не является бесконечностью и должно быть NaN. Поскольку ведущий бит установлен, это тихий NaN, а не так называемый «сигнальный NaN».
2 голосов
/ 25 января 2010

Шаг 3 просто означает добавление 1 к значению. Это действительно так просто, как кажется. : -)

Пример с 0xFF72 (здесь предполагается 16 бит):

  1. Во-первых, инвертируйте его: 0x008D (каждая цифра просто 0xF минус исходное значение)
  2. Затем добавьте 1: 0x008E
0 голосов
/ 25 января 2010

Это звучит как домашнее задание, и для открытости вы должны пометить его как таковое, если оно есть.

Что касается интерпретации 8-байтового (двойного) числа с плавающей запятой, взгляните на эту статью в Википедии .

...