我正在尝试将我的一些Java代码转换为(J)Ruby,由于我缺乏按位操作的经验,我遇到了一个我似乎无法自己解决的问题。
简单地说,我不知道如何将这段Java代码转换为Ruby,因为Ruby似乎没有无符号右移运算符(>>>)。
private static short flipEndian(short signedShort) {
int input = signedShort & 0xFFFF;
return (short) (input << 8 | (input & 0xFF00) >>> 8);
}
def self.flip_endian(signed_short)
input = signed_short & 0xFFFF
input << 8 | (input & 0xFF00) >> 8
end
答案 0 :(得分:0)
这将交换前2个字节并切断整数的所有高位:
def self.flip_endian(input)
input << 8 & 0xFF00 | input >> 8 & 0xFF
end