3.3 KiB
Функции кодирования
hex
Принимает аргументы типов: String
, unsigned integer
, float
, decimal
, Date
, or DateTime
. Возвращает строку, содержащую шестнадцатеричное представление аргумента. Используются заглавные буквы A-F
. Не используются префиксы 0x
и суффиксы h
. Для строк просто все байты кодируются в виде двух шестнадцатеричных цифр. Числа выводятся в big endian ("человеческом") формате. Для чисел вырезаются старшие нули, но только по целым байтам. Например, hex(1) = '01'
. Date
кодируется как число дней с начала unix-эпохи. DateTime
кодируются как число секунд с начала unix-эпохи. float
и decimal
кодируются как их шестнадцатеричное представление в памяти.
unhex(str)
Принимает строку, содержащую произвольное количество шестнадцатеричных цифр, и возвращает строку, содержащую соответствующие байты. Поддерживаются как строчные, так и заглавные буквы A-F. Число шестнадцатеричных цифр не обязано быть чётным. Если оно нечётное - последняя цифра интерпретируется как младшая половинка байта 00-0F. Если строка-аргумент содержит что-либо кроме шестнадцатеричных цифр, то будет возвращён какой-либо implementation-defined результат (не кидается исключение). Если вы хотите преобразовать результат в число, то вы можете использовать функции reverse и reinterpretAsType.
UUIDStringToNum(str)
Принимает строку, содержащую 36 символов в формате 123e4567-e89b-12d3-a456-426655440000
, и возвращает в виде набора байт в FixedString(16).
UUIDNumToString(str)
Принимает значение типа FixedString(16). Возвращает строку из 36 символов в текстовом виде.
bitmaskToList(num)
Принимает целое число. Возвращает строку, содержащую список степеней двойки, в сумме дающих исходное число; по возрастанию, в текстовом виде, через запятую, без пробелов.
bitmaskToArray(num)
Принимает целое число. Возвращает массив чисел типа UInt64, содержащий степени двойки, в сумме дающих исходное число; числа в массиве идут по возрастанию.