如何从浮点数得到字节[]?我需要创建消息,其中数据我有四个字节,数据可以是无符号整型(它很容易从int获取byte []),二进制和浮点数(但我不知道如何从float获得四个字节)。任何解决方案如何从浮点数得到字节[]
4
A
回答
1
如果你认为它很容易得到一个int的字节,Float.floatToIntBits
可能是你想要什么:
float f = ...;
int i = Float.floatToIntBits(f);
byte[] floatBytes = toBytes(i);
14
您可以使用Float.floatToRawIntBits(float)
但我怀疑你不需要的byte [],而是想成为能够写入一个字节流。在这种情况下,如果使用NIO,我会用DataOutputStream.writeFloat(float)
,您可以使用ByteBuffer.putFloat()
字节缓冲区的一个好处是,你可以用ByteBuffer.order指定字节顺序(),所以你可以处理任何一种或大或小尾数。
9
类java.lang.Float
有方法floatToIntBits()
和floatToRawIntBits()
,你可以用它来获得在的float
(作为int
)的位模式。所以,你可以做这样的事情:
float value = 1.5e-3f;
int bits = Float.floatToIntBits(value);
byte[] bytes = new byte[4];
bytes[0] = (byte)(bits & 0xff);
bytes[1] = (byte)((bits >> 8) & 0xff);
bytes[2] = (byte)((bits >> 16) & 0xff);
bytes[3] = (byte)((bits >> 24) & 0xff);
注:你得找出你的具体应用,其中floatToIntBits()
或floatToRawIntBits()
是适当的,你必须确定在哪个命令你所需要的字节(小或大端)。
3
没有任何涉及数学,你可以做到这一点通过DataOutputStream
写值,然后获取输出结果:
ByteArrayOutputStream bos = new ByteArrayOutputStream(4);
DataOutputStream dos = new DataOutputStream(bos);
dos.writeFloat(yourFloat);
byte[] bytes = bos.toByteArray();
// at this point, your bytes will contain the 4-byte representation of the float.
1
public static void main(String[] args)
{
float f = 23f;
byte[] op = new byte[4];
int fi = Float.floatToIntBits(f);
for (int i = 0; i < 4; i++)
{
int offset = (op.length - 1 - i) * 8;
op[i] = (byte) ((fi >>> offset) & 0xff);
}
for(byte b : op)
{
System.out.format("0x%02X ", b);
}
}
相关问题
- 1. 顶点法线从字节到浮点数
- 2. 如何从除以两个整数得到浮点数结果
- 3. 从NSData的获取浮点值字节
- 4. 如何从字节c得到角度#
- 5. 从EditText到浮点数的字符串
- 6. 如何将字节字符串放入IDL中的浮点数
- 7. 我如何获得浮点变量点后的5位数字?
- 8. 如何将有符号字节数组转换为浮点数?
- 9. 如何将浮点数组转换为字节数组?
- 10. 如何获得浮点阵列中浮点dtype的数字可读输出?
- 11. 浮点NSData字节 - iPhone SDK
- 12. 转换字节数组成浮点
- 13. java读取浮点数的字节流
- 14. 转换4个字节浮点数matlab
- 15. 如何获得最高的浮点数?
- 16. 如何从字符串解析到C#中的浮点数?
- 17. 创建从字节数组,得到这样的字节数组
- 18. 如何从浮点数中获得分数?
- 19. 如何从android中的数据库中获得浮点数
- 20. 浮点数,int和str到字节数组 - python
- 21. 如何序列化一个浮点数的浮点数到一个字符串?
- 22. 如何将浮点数组转换为字节[]并返回?
- 23. 如何将字节转换为Swift中的半浮点数?
- 24. 如何读/写字节数组的浮点值?
- 25. 我如何得到2个整数的浮点数?
- 26. 将4字节浮点数据压缩为1字节
- 27. 浮点数字
- 28. c#转换从大到小排序浮点数的字节数组
- 29. 从字符串解析到浮点数返回带有问号的浮点数
- 30. 用D得到最小浮点数D
+1,这是一个能在数据写入彩车的最佳解决方案连接。 – funkybro 2011-05-17 07:22:35