Другие языки программирования и технологии

Что такое дробные HEX числа?

Это число в 16ной записи представляющее десятное дробное?
Пример 0х1p-1 (пример из языка Lua)

По какому принципу они строятся и существуют ли в других языках?
Это не просто дробное шестнадцатиричное число, это ЭКСПОНЕНЦИАЛЬНАЯ шестнадцатиричная запись числа с плавающей точкой. Аналогична обычной экспоненциальной записи плавающих чисел вида, скажем 1.42e-1, что означает выражение 1,42 * 10 ^ -1, только для p основание будет равно (внезапно) 2, вместо е, принимаемого за 10, т. е.
0x1p-1 = 1 * 2 ^ -1.

При этом, степень после p также внезапно имеет десятичную запись, а не шестнадцатиричную

Появилась она как минимум, в стандарте языка C99, при этом в с++ попала только в версии с++17, до этого в с++ существовала как нестандартное расширение некоторых компиляторов. Применяется, например, еще в haskel, java, может и каких-то других подобных языках

Есть и другие варианты записи, например в Хаскеле в неэкспоненциальной форме шестнадцатиричные дроби могут быть записаны в виде 0x1.1
Валера -Ов
Валера -Ов
30 155
Лучший ответ
Дробные 16-ричный числа ничем не отличаются от дробных десятичных - за исключением основания системы счисления. Буква 'p' используется вместо буквы 'e' потому, что 'e' используется для обозначения одной из цифр в 16-ричной системе счисления.

Запись 0х1p-1 означает 1 * 16 ** -1 - т.е. 1.0 / 16.0
Аналогично, запись 1e-1 означает 1 * 10 ** -1 - т.е. 1.0 / 10.0
Орлов Владимир Нет, не угадали. В Lua, также как и в С99 показатель экспоненты равен 2, а не 16
Шестнадцатеричная система счисления (HEX) – это позиционная система счисления по целочисленному основанию 16. В качестве шестнадцатеричных чисел используются цифры от 0 до 9 и латинские буквы от A до F. Значения чисел от 0 до 9 обычны, как и в десятичной системе, далее, от 10 до 16 используются буквы A-F, т.е. буква F = 16, далее 11 = 17, 12 = 18 и т.д и т.п.
Буквы A, B, C, D, E, F имеют значения 10₁₀, 11₁₀, 12₁₀, 13₁₀, 14₁₀, 15₁₀ соответственно.