我想收拾4个字节为一个int使用一些在这里找到了解决方案,但它不” t似乎适用于我的一个测试。
这是我使用的代码:
public static int pack(int c1, int c2, int c3, int c4)
{
return (c1 << 24) | (c2 << 16) | (c3 << 8) | (c4);
}
现在,当我使用它像0x34,0x68,0x77,而0×23简单的东西,我得到我所期望的:0x34687723。但是当我在0xBA,0xAD,0xBE和0xEF上使用它时,我得到了一些解决办法。有没有人看到问题可能是什么?
编辑
上面的代码是能够给我我想要的东西,而“错误值”我下面提的是十进制的形式表示0xBAADBEEF的另一种方式。
知道你实际获得的结果是什么也许有用。 :) – sarnold 2011-05-24 22:26:43
不知何故,我迷路了。你能告诉我你为什么每个字节都有这个(0xFF&...)吗?我真的很抱歉,不知何故,目前我没有得到它......这是漫长的一天。我真的很感谢有人帮助我,在这里。 – 2011-05-24 22:28:34
@ b.buchhold:我认为这是确保它们实际上是单字节值。不知道为什么参数不仅仅是'byte'类型。 – Ryan 2011-05-24 22:29:52