Function 按位移位/旋转的方向与符号

Function 按位移位/旋转的方向与符号,function,language-agnostic,arguments,bit-shift,Function,Language Agnostic,Arguments,Bit Shift,对于逐位移位(或旋转、循环)操作,我们通常有一个运算符,例如,我指的是其中两个 x << n x >> n 在此之前,我们必须确定哪个移位用于正和负n——每个移位(或旋转)方向的“符号”是什么 对此有定义或惯例吗 (请注意,此问题与有符号/无符号类型无关) 更新 还请注意,我并没有询问此函数的实现细节,即使它可能有些相关 类似scheme/lisp的语言中也有类似的函数,比如,对正的n进行左移位,因为向右移位k等于乘以2^-k,向左移位等于乘以2^k,我想这应该给你一个

对于逐位移位(或旋转、循环)操作,我们通常有一个运算符,例如,我指的是其中两个

x << n
x >> n
在此之前,我们必须确定哪个移位用于负n——每个移位(或旋转)方向的“符号”是什么

对此有定义或惯例吗

(请注意,此问题与有符号/无符号类型无关)

更新 还请注意,我并没有询问此函数的实现细节,即使它可能有些相关

类似scheme/lisp的语言中也有类似的函数,比如,对正的
n

进行左移位,因为向右移位k等于乘以2^-k,向左移位等于乘以2^k,我想这应该给你一个提示


<强>注:< /强>理由,我认为这种方式是普遍认为乘法是比除法更基本的运算,尽管你肯定可以用另一种方式来争论。

你可以用负数作为参数

比如说


我不认为有一个使用符号来表示方向的惯例。斯科皮:我认为可能有一些函数的实例是一些函数语言..很好。不幸的是,这不适用于任何语言。。(例如Python不喜欢那样)我倾向于同意。。人们可以把它看成是一种感觉的数学描述,即左移位“放大”<代码> x>代码>…
bitshift(x, n)