我试着把这段代码翻译成python,但是我很难做到,不用担心索引值和变量名,我只想知道“>>>”部分到底做了什么,也许是python的等价物,但是一个解释会很好:

target[0] = (char)(source[sourceIndex] >>> 2);
target[1] = (char)((source[sourceIndex] & 3) << 4 | source[sourceIndex + 1] >>> 4);
target[2] = (char)((source[sourceIndex + 1] & 0xf) << 2 | source[sourceIndex + 2] >>> 6);
target[3] = (char)(source[sourceIndex + 2] & 0x3f);

任何帮助都将不胜感激

最佳答案

“<<>”是位移位运算符。明确地,
有符号左移位运算符“<>”向右移位一个位模式。位模式由左手操作数给出,位置数由右手操作数移位。无符号右移运算符“>>>”将零移到最左侧位置,而“>>”之后的最左侧位置取决于符号扩展。
--从The Java™ Tutorials - Bitwise and Bit Shift Operators

09-25 19:16