按位循环移位的符号

时间:2015-09-25 15:47:37

标签: assembly operators bitwise-operators bit-shift

C和其他一些语言bitwise shifts。它们通常至少具有逻辑移位(实际上,当将它们用于有符号整数时是算术运算,而当整数是无符号时逻辑移位)[source]

  • 向左移动(<<
  • 右移(>>

在Java中,还有一个逻辑右移(>>>)。没有单独的逻辑右移,因为它与算术右移相同。 [source]

编码汇编语言时,我有时需要循环移位crccrlrorrol)。在计划或编写文档时,我有时会将它们记为符号而不是字母组合。我无法为他们找到任何符号。

来自wikipedia

  

还有一些特定于编译器的内在函数实现循环移位,如Microsoft Visual C ++中的_rotl8,_rotl16,_rotr8,_rotr16。 Clang为Microsoft兼容性提供了一些旋转内在函数,它们遇到了上述问题。[9] GCC不提供旋转内在函数。

是否存在按位循环移位的已建立符号?

1 个答案:

答案 0 :(得分:0)

>>>实际上是Java的逻辑转变。据我所知,这种符号在计算机科学文献中并不常见,只有Java和Java风格的语言缺乏无符号类型。

旋转有时被写为ROTL或其中的一些变体,或表示为乘以2的幂乘以2的幂减1,或者表示为<<,其上方有“rot”字样(见过)在Hacker's Delight中,但最常见的是<<<,它出现在许多加密文本中,虽然在图中更常见(>>>有时也会出现,但不太常见)。为了避免与Java混淆,您可以将自己限制为<<<,或者只是在您的介绍中或者在脚注中定义它们。