2015-04-03 4 views
1

Из статьи:C число с плавающей точкой 0x1.fp3

GNU CC распознает числа»с плавающей точкой, написанные не только в обычной десятичной системе счисления, такие как 1.55e1, но также числа, такие, как 0x1.fp3 записанный в шестнадцатеричном формате. В этом формате обязательные значения указаны в шестнадцатеричном представлении и поле экспоненты p или P. Показатель представляет собой десятичное число, которое указывает мощность 2, по которой будет умножаться значительная часть. Таким образом, 0x1.f 1 15/16, p3 умножает его на 8, а значение 0x1.fp3 совпадает с 1,55e1. "

Кажется, что 0x1.fp3 оценивается как = (1 + 15/16) * 2^3

Откуда вышло 15/16?

+1

Онлайн-ссылка для шестнадцатеричного формата с плавающей запятой: http://www.exploringbinary.com/hexadecimal-floating-point-constants/ –

+0

@RudyVelthuis исправлено –

ответ

5

Поскольку это шестнадцатеричный формат, то 0.1 означает 1/16, 0.2 означает 2/16 ... 0.a означает 10/16 ..., 0.f означает 15/16.

Смежные вопросы