[英]Java bytebuffer to C
從 Windows 上的 C 程序,我們需要像 Java 字節緩沖區一樣讀寫,它將二進制文件存儲在 BIG_ENDIAN 中
該算法描述於: http://mindprod.com/jgloss/binaryformats.html
需要讀寫int和float。
有沒有人有執行此操作或參考的示例 c 或 C++ 代碼?
TIA,伯特
我認為困難在於 Big Endian 和 Little Endian 之間的轉換。
本文應該可以幫助您完成 Endian 轉換。 它包含用於交換整數、長整數、浮點數和任意長度字節 arrays 字節順序的代碼。
http://www.codeproject.com/KB/cpp/endianness.aspx
交換任意類型的代碼如下所示:
#include <algorithm> //required for std::swap
#define ByteSwap5(x) ByteSwap((unsigned char *) &x,sizeof(x))
void ByteSwap(unsigned char * b, int n)
{
register int i = 0;
register int j = n-1;
while (i<j)
{
std::swap(b[i], b[j]);
i++, j--;
}
}
你想使用htonl和類似的。 設計的rest是你自己的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.