【发布时间】:2012-10-20 17:17:34
【问题描述】:
-
我想在 Java 中将字节转换为 int。 我想假设字节是无符号字节。 假设如果
byte a = (byte)0xFF; int r = (some operation on byte a);r 应该是 255 而不是十进制的 -1。
-
然后我想从 3 个字节创建 int 值。 假设如果
byte b1 = (byte)0x0F; byte b2 = (byte)0xFF; byte b3 = (byte)0xFF; int r = (some operation in bytes b1, b2 and b3);那么 r 应该是
0x000FFFFF。在 int 值中,字节 b1 将放置在较高的第 3 位,而字节 b3 将放置在较低的第 1 位。此外,我的 b1 范围从 0x00 到 0x0F,其他字节将从0x00到0xFF,假设字节的无符号性质。如果字节 b1 大于 0x0F,我将只提取最低 4 位。简而言之,我想从 3 个字节中提取 int,但只使用 3 个字节的 20 位。 (来自 b2 和 b3 的总共 16 位,以及来自 b1 的 4 个最低位)。 int r 必须为正,因为我们从 3 个字节创建并假设字节的无符号性质。
【问题讨论】:
标签: java bit-manipulation