作者TonyQ (骨头)
看板java
标题[分享] byte[]计算
时间Sun Mar 25 18:26:19 2007
最近碰到的鸟问题就是因为存档的关系,
所以int被转成4个byte,有些short被转成2个byte,
这时候就需要一些计算把他们还原。
主要的计算法则是 & 後平移再|,
比方说两位的short就是
(b[0] & 0xFF) | (b[1] << 8 & 0xFF00)
int transByteIntoInt(byte[] b){
if (b.length==0) return -1;
int addr = b[0] & 0xFF;
for(int i=1;i<b.length;i++)
addr |= ((b[i] << 8*i) & (0xFF)*(int)Math.pow(256,i));
return addr;
}
--
因为困扰我三个多小时,所以贴上来一起讨论罗。XD
btw,
我用DatainputStream配 byteInputStream一直失败,不晓得为甚麽。
--
I am a person, and I am always thinking .
Thinking in love , Thinking in life ,
Thinking in why , Thinking in worth.
I can't believe any of what ,
I am just thinking then thinking ,
but worst of all , most of mine is thinking not actioning...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.27.68