Можно ли получить необработанные байты числового объекта с плавающей запятой (IEEE-754) в ActionScript?
Или, наоборот, если я могу получить знак (1 бит), мантиссу (52 бита) и показатель степени (11 бит), тогда я могу выполнить сдвиг битов и построить необработанный массив байтов.
Я хотел бы создать точные, компактные строковые представления числовых значений (шестнадцатеричное, base-36, base-64 и т. Д.) Для определенных ситуаций сериализации.
Меня также может заинтересовать создание компактных 16-битных чисел с плавающей запятой (половинная точность IEEE) и их упаковка в плотные массивы байтов.
Например, в Java я мог бы написать такой код для создания точных строковых представлений двойников:
public static String hexRepresentation(double value) {
long bits = Double.doubleToLongBits(value);
String hex = Long.toHexString(bits);
return hex;
}
public static String b36Representation(double value) {
long bits = Double.doubleToLongBits(value);
String hex = Long.toString(bits, 36);
return hex;
}
public static void main(String[] args) {
System.out.println(hexRepresentation(123.456)); // 405edd2f1a9fbe77
System.out.println(hexRepresentation(Math.PI)); // 400921fb54442d18
System.out.println();
System.out.println(b36Representation(123.456)); // z8nf9qi2e5pz
System.out.println(b36Representation(Math.PI)); // z21th0e6pjiw
}
Если у кого-то есть идеи, как сделать то же самое в ActionScript, я хотел бы знать. Но пока это не кажется возможным. А как насчет этих новых кодов операций в FP10 для алхимии? Есть ли там что-нибудь, что позволяет как-то добраться до необработанных байтов?