Почему 0x1p3
равно 8.0
? Почему 0x1e3
равен 483
, тогда как 0x1e3d
равно 7741
? Это сбивает с толку, так как 1e3d
равно 1000.0
.Представление чисел с плавающей запятой Java в виде шестнадцатеричных чисел
ответ
0x1e3
и 0x1e3d
шестнадцатеричные числа литералов. Обратите внимание, что e
и d
являются шестнадцатеричными цифрами, а не индикатором экспоненты или индикатором типа double
в этом случае.
1e3d
является десятичной цифрой с плавающей запятой буквальный. e
является индикатором показаний, d
говорит, что это double
, а не float
.
Обозначение 0x1p3
- способ выражения литерала с плавающей запятой в шестнадцатеричном виде, как вы можете прочитать в section 3.10.2 Спецификации языка Java. Это означает 1 раз 2 мощности 3; показатель является двоичным (так что это 2-к-мощности вместо 10-к-мощности).
0x1e3 шестнадцатеричный для 483, как это 0x1e3d гекса для 7741. e
читаются как шестнадцатеричное число со значением 14.
Ah, 0x1e3 - это шестнадцатеричное число, поэтому «e» здесь не означает экспонента. – serious
Но 0x1p3 до сих пор неясно. – serious
@serious, разница в том, что 0x1e3 является целым числом, а не числом с плавающей запятой. «E» в этом целой является просто неудачным совпадением, которое смущает. 0x1p3 - число с плавающей запятой. Это интерпретируется иначе. Интерпретация включает в себя _mantissa_ и _exponent_. Первая часть - 1.0 (обратите внимание на предполагаемую десятичную точку). Последняя является частью «p3», которая читает «до 3-й степени». Поскольку мы находимся в двоичном выражении, количество чисел до 3-й степени такое же, как и смещение 3 бит влево, поэтому 0b1 становится 0b1000. Это 8 в десятичной форме. –
- 1. Matlab-представление чисел с плавающей запятой
- 2. Python представление чисел с плавающей запятой
- 3. Точное представление непредставимых чисел с плавающей запятой в Java
- 4. Awk чисел с плавающей запятой
- 5. Графики чисел с плавающей запятой в java
- 6. представление шестнадцатеричных чисел в c
- 7. Распределение точности чисел чисел с плавающей запятой
- 8. Как исправить представление python модуля numpy в виде шестнадцатеричных чисел
- 9. Форматирование чисел с плавающей запятой Java
- 10. Разница чисел чисел с плавающей запятой между PostgreSQL и Java
- 11. Формат чисел с плавающей запятой
- 12. Чтение чисел с плавающей запятой
- 13. представление чисел с плавающей точкой в Swift
- 14. Сравнение чисел с плавающей запятой
- 15. Точность чисел с плавающей запятой
- 16. Endianess чисел с плавающей запятой
- 17. Сравнение чисел с плавающей запятой
- 18. Диапазон чисел с плавающей запятой
- 19. Исправление чисел с плавающей запятой
- 20. Печать чисел с плавающей запятой в ассемблере
- 21. Представление чисел с плавающей запятой в двоичном формате
- 22. Взаимное представление целых чисел в числах с плавающей запятой
- 23. Сортировка чисел с плавающей запятой в партии
- 24. Указывает ли стандарт C++ на представление чисел с плавающей запятой?
- 25. Поиск целых чисел и чисел с плавающей запятой в списке
- 26. Сравнение чисел с плавающей запятой в Latex
- 27. Проверка чисел с плавающей запятой в форме
- 28. Использование чисел с плавающей запятой в imagefilledrectangle()
- 29. Форматирование чисел с плавающей запятой в ASP
- 30. Сортировка чисел с плавающей запятой В MIPS
Почему 'p' в' 0x1p3'? – marcog
@marcog это часть способа выражения чисел с плавающей запятой, см. JLS: http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.10.2 – Jesper
@marcog: это маркер экспоненты для шестнадцатеричного литерала с плавающей запятой, как определено в стандартах Java и C99. –