【发布时间】:2019-02-16 14:18:20
【问题描述】:
我正在尝试编写一个方法,该方法接受一个 32 位 int 和一个表示 32 位 int 中一个字节的整数并返回传入的字节。即 getByte(0x56781234, 0); // => 0x34。我的思考过程是,如果我可以将 int 右移到我想要的字节是 int 的最后一个字节的位置,我可以用 0xFF 与它来获得该值。比如,
public int getByte(int num, int byteVal) {
return ((num >> 8) >> byteVal) & 0xFF;
}
我知道我的逻辑是有缺陷的。我试图在一个语句中多次转换。警告:没有乘法。建议?
【问题讨论】:
-
不同之处在于我试图在一行中进行多个班次。上面的问题完成了一次大小为 8 的转变。
-
>> 8是干什么用的?(0x56781234 >> 0) & 0xFF本身不是已经返回0x34了吗?
标签: java bit-manipulation