Flash 闪存中的数字位
在闪存中,对数字执行位操作总是会去除浮动部分。Flash 闪存中的数字位,flash,actionscript-3,floating-point,bit-manipulation,Flash,Actionscript 3,Floating Point,Bit Manipulation,在闪存中,对数字执行位操作总是会去除浮动部分。 在flash中,有没有办法获取数字的位表示形式 我曾尝试过谷歌搜索,但要么我无法很好地表达它,要么它不那么容易找到 编辑,以澄清一些问题:我专门指定了Number,即在Flash中表示浮点数的类,而不是一般的Number。我想我可以在flash中写下有没有一种方法可以得到浮点数的位表示?如果你只想打印出二进制表示(即2=10),你可以使用数字函数并指定一个基数值 前 我能想到的唯一方法就是使用ByteArray 大概是这样的: va
在flash中,有没有办法获取数字的位表示形式 我曾尝试过谷歌搜索,但要么我无法很好地表达它,要么它不那么容易找到
编辑,以澄清一些问题:我专门指定了Number,即在Flash中表示浮点数的类,而不是一般的Number。我想我可以在flash中写下有没有一种方法可以得到浮点数的位表示?如果你只想打印出二进制表示(即2=10),你可以使用数字函数并指定一个基数值 前
我能想到的唯一方法就是使用
ByteArray
大概是这样的:
var x:Number = 1.532;
var ba:ByteArray = new ByteArray();
ba.writeDouble(x);
ba.position = 0;
var high32bits:uint = ba.readUnsignedInt();
var low32bits:uint = ba.readUnsignedInt();
trace(high32bits.toString(16)); // 3ff88312
trace(low32bits.toString(16)); // 6e978d50
恐怕不行:
Number(1.532)代码>和<代码>编号(1.0)。toString(2)代码>都给出1
。好主意!这是一个非常好的工作环境,但它确实有效。不过,我还是想知道是否有更好的方法。
var x:Number = 1.532;
var ba:ByteArray = new ByteArray();
ba.writeDouble(x);
ba.position = 0;
var high32bits:uint = ba.readUnsignedInt();
var low32bits:uint = ba.readUnsignedInt();
trace(high32bits.toString(16)); // 3ff88312
trace(low32bits.toString(16)); // 6e978d50