float转换为byte[4]数组

int intbits = Float.floatToIntBits(f);//将float里面的二进制串解释为int整数

按照IEEE 754标准,32位浮点数在计算机中二进制存储形式共三部分:S(1位,符号) E(8位,阶码) M(23位,尾数)
给你举个例子吧,Float.floatToIntBits(20.5f)按照如下方式计算:
20.5D=10100.1B=1.01001*2^4B 指数e=4
S=0–>正数 E=4+127=131D=10000011B–>真实指数e变成阶码E时需加127 M=01001B
则32位2进制存储形式为:0 10000011 01001000000000000000000
转换成10进制即1101266944

实例:
十进制:61.1D
二进制:111101.00011001100110011001100110011001100110011001101B

1.1110100011001100110011001100110011001100110011001101*2^5B e=5
0 10000100 11001100110011001100110

对应的HexString:42746666
转成二进制:01000010011101000110011001100110 验算正确

你可能感兴趣的:(java,数据分析)