如何從浮點數得到字節[]?我需要創建消息,其中數據我有四個字節,數據可以是無符號整型(它很容易從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. 浮點NSData字節 - iPhone SDK
- 9. 轉換字節數組成浮點
- 10. 浮點數,int和str到字節數組 - python
- 11. 如何從浮點數中獲得分數?
- 12. 如何將字節轉換爲Swift中的半浮點數?
- 13. 如何讀/寫字節數組的浮點值?
- 14. 如何將浮點數組轉換爲字節[]並返回?
- 15. 將4字節浮點數據壓縮爲1字節
- 16. 從字節數組中打印十六進制浮點常量
- 17. 從浮點數中得到小數部分
- 18. 從Android的字節數4字節得到長
- 19. x86 4字節浮點數與8字節雙精度浮點數(對比long long)?
- 20. R字節矢量到iee 754浮點數
- 21. 如何從PHP中的模數獲得浮點值?
- 22. 在Swift中將半精度浮點數(字節)轉換爲浮點數
- 23. 我如何得到一個eval語句來運行浮點數
- 24. 字符數組到浮點數轉換
- 25. php oci_bind_by_name浮點數到數字
- 26. 字符串到整數/浮點數
- 27. 得到的字符串XML節點值
- 28. 如何在json_encoding時獲得數字浮點數(不是字符串!)?
- 29. 我得到浮動RGB值,但PIL方法'putpixel'不接受浮點型數字
- 30. 我如何得到Jtree Java中所有父節點的葉節點數
+1,這是一個能在數據寫入彩車的最佳解決方案連接。 – funkybro 2011-05-17 07:22:35