可能重複:
Converting 32-bit unsigned integer (big endian) to long and back在Java中使用Unsigned int 32位?
我想在Java中,這表達
char tab[100];
tab[10] = '\xc0';
tab[48] = '\x80';
uint32_t w = 0x67452301;
uint32_t x = 0xefcdab89;
uint32_t y = 0x98badcfe;
uint32_t z = 0x10325476;
a = ((b & c) | (~b & d)) + (*(uint32_t*)(tab+0x00)) + a - 0x28955B88;
a = ((a << 0x07) | (a >> 0x19)) + b;
I'have嘗試這種轉換,但...
char[] tab = new char[64];
tab[10] = (char) 0xc0;
tab[48] = (char) 0x80;
但值不是正確的,有沒有另一種方式來分配char []中的\ 0x80? 我如何解釋這種類型的演員在java((uint32_t))?
非常感謝!
代表無符號的32個變量中有爪哇無無符號的32位的int。您必須使用long(帶符號的64位)。 – 2012-08-01 12:21:19
數組不能被當作Java中的指針 - 你必須使用顯式數組索引。 – 2012-08-01 12:22:35
(也請注意,字符是Java中的16位)。 – 2012-08-01 12:23:05