我在javascript中遇到过这个函数
function(x) {
return (x >> 8 << 8) ^ x;
};
它用于将x转换为字节表示。我理解按位操作的作用,但是我不明白发生了什
答案 0 :(得分:2)
x >> 8
右移x次,有效清除最低8位。
(x >> 8) << 8
这左移上述数量8位。因此,我们得到x,最低有效8位设置为0。 如果x(16位数)最初为0b0001000101010101,则它首先变为0b0000000000010001,最后变为0b0001000100000000。
(x >> 8 << 8) ^ x
这将使用x对上述数字进行xor,保留最低有效8位并将所有其余部分清除为0。 因此,获得最低有效字节。 它也适用于你的情况,因为122小于2 ^ 8。 Xoring 122为0返回最低有效字节 - 122本身。