C和其他一些语言bitwise shifts。它们通常至少具有逻辑移位(实际上,当将它们用于有符号整数时是算术运算,而当整数是无符号时逻辑移位)[source]:
<<
)>>
)在Java中,还有一个逻辑右移(>>>
)。没有单独的逻辑右移,因为它与算术右移相同。 [source]
编码汇编语言时,我有时需要循环移位(crc
,crl
,ror
和rol
)。在计划或编写文档时,我有时会将它们记为符号而不是字母组合。我无法为他们找到任何符号。
来自wikipedia:
还有一些特定于编译器的内在函数实现循环移位,如Microsoft Visual C ++中的_rotl8,_rotl16,_rotr8,_rotr16。 Clang为Microsoft兼容性提供了一些旋转内在函数,它们遇到了上述问题。[9] GCC不提供旋转内在函数。
是否存在按位循环移位的已建立符号?
答案 0 :(得分:0)
>>>
实际上是Java的逻辑转变。据我所知,这种符号在计算机科学文献中并不常见,只有Java和Java风格的语言缺乏无符号类型。
旋转有时被写为ROTL或其中的一些变体,或表示为乘以2的幂乘以2的幂减1,或者表示为<<
,其上方有“rot”字样(见过)在Hacker's Delight中,但最常见的是<<<
,它出现在许多加密文本中,虽然在图中更常见(>>>
有时也会出现,但不太常见)。为了避免与Java混淆,您可以将自己限制为<<<
,或者只是在您的介绍中或者在脚注中定义它们。