选定小数位数为16位,则乘以65536(2^16)实现整数化:
(1234.3945)10*(2^16)10=(1234.3945)10*(65536)10=(80897277.952)10
>(80897277)10 //去掉小数,保留整数部分
=(4D264FD)16=(0100 1101 0010 0110 0100 1111 1101)2因为最初乘了65536,即2的16次方,所以换算成二进制时应右移十六位,去掉前导零,即(10011010010.0110010011111101)2
(1112.999)10*(2^16)10
=(1112.999)10*(65536)10
=(72941502.464)10
>(72941502)10 //去掉小数,保留整数部分
=(458FFBE)16
=(0100 0101 1000 1111 1111 1011 1110)2
因为最初乘了65536,即2的16次方,所以换算成二进制时应右移十六位,去掉前导及后导零,
即(10001011000.111111111011111)2
望采纳
追问可能你误解我意思了
我的是说 比如 我在c++里面 以二进制的方式把 100 -101 和102.102这三个数(分别为int,int ,float)写到0.dat文件里面 我现在是想 在lua里面 把这三个数读出来
local f = io.open(Path,"rb")
local data = f:read("*a")
我把这个文件读到data里面 怎么把data里面的这三个数取出来