我试图将此代码翻译为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);
任何帮助,将不胜感激
这是一个“无符号右移”。
所以,如果您的号码 (x
) is 11110000
(二进制)。
x >>> 1
将01111000
(二进制)。
这是反对x >> 1
这将导致11111000
(二进制)。
The >>
试图保留“符号位”但是>>>
才不是。
注意:我假设一个 8 位整数(或byte
在爪哇)。同样的情况也适用于 2 字节和 4 字节整数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)