2012-05-30 253 views
1

我在java中有以下代碼,我需要將其轉換爲C++以便能夠對unsigned int進行編碼。encoding unsigned int

public static int enc_uint32be(int i, byte[] dst, int di) { 
     dst[di++] = (byte)((i >> 24) & 0xFF); 
     dst[di++] = (byte)((i >> 16) & 0xFF); 
     dst[di++] = (byte)((i >> 8) & 0xFF); 
     dst[di] = (byte)(i & 0xFF); 
     return 4; 
} 

我是java的新手。我相信這個論壇上的幾位專家都知道這兩種語言 - 有人可以幫我翻譯。

回答

3

這取決於您計劃使用的數據類型,但如果你只需要改變:

byte[] dst 

unsigned char dst[] 
在函數聲明

,那麼它應該具有相同的行爲(並將函數中的字節用法更改爲unsigned char)。

+0

謝謝,這是股票價格,所以我相信字符應該工作。我相信當我嘗試轉換更多代碼時,我會遇到更多問題。 – user1155299

+1

您可能對'typedef unsigned char byte;'感興趣,這可以稍微緩解一些轉換。 –

+0

@ MooingDuck,謝謝,這是一個很好的建議 – user1155299

1

實際上在Java中的代碼是在C++中與小的修改幾乎相同:

  • 字節不是在C++中的有效類型,等效是無符號字符
  • 陣列參數類型必須返工作爲@MarkWilkins提到。
+0

謝謝..我相信我會發布更多關於轉換的問題 – user1155299