[討論] byte轉int問題
在Big-Endian的情況下
byte b[4];
int a=0;
第一種做法是用加的
a = (b[0]<<24 & 0xff000000) + (b[1]<<16 & 0x00ff0000)+
(b[2]<<8 & 0x0000ff00) + b[3];
跟第二種做法用or operator
a = (b[0]<<24 & 0xff000000) | (b[1]<<16 & 0x00ff0000) |
(b[2]<<8 & 0x0000ff00) | (b[3] & 0x000000ff);
這兩種做法哪種比較好呢?
比較好的原因是?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.171.13.165
推
04/18 00:09, , 1F
04/18 00:09, 1F
→
04/18 00:11, , 2F
04/18 00:11, 2F
→
04/18 00:13, , 3F
04/18 00:13, 3F
推
04/18 00:27, , 4F
04/18 00:27, 4F
→
04/18 09:18, , 5F
04/18 09:18, 5F
→
04/18 09:22, , 6F
04/18 09:22, 6F
→
04/18 09:22, , 7F
04/18 09:22, 7F
→
04/18 09:24, , 8F
04/18 09:24, 8F
→
04/18 09:55, , 9F
04/18 09:55, 9F
→
04/18 09:55, , 10F
04/18 09:55, 10F
推
04/20 09:21, , 11F
04/20 09:21, 11F