簡體   English   中英

Java 字節緩沖區到 C

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM