当前位置: 首页 > 面试题库 >

如何在python中获得逻辑右移二进制移位

融建树
2023-03-14
问题内容

如标题所示,JavaScript中有一个特定的运算符>>>。例如,在JavaScript中,我们将得到以下结果:

(-1000) >>> 3 = 536870787

(-1000) >> 3 = -125

1000 >>> 3 = 125

1000 >> 3 = 125

那么是否有某种方法或运算符来表示>>>呢?


问题答案:

没有内置的运算符,但是您可以轻松地模拟>>>自己:

>>> def rshift(val, n): return val>>n if val >= 0 else (val+0x100000000)>>n
... 
>>> rshift(-1000, 3)
536870787
>>> rshift(1000, 3)
125

以下替代实现消除了对的需要if

>>> def rshift(val, n): return (val % 0x100000000) >> n


 类似资料:
  • 问题内容: 在Java中,为什么-32 >>> -1 = 1? 它不仅限于-32。只要它们不是太大,它就适用于所有负数。 我发现 x >>> -1 = 1 x >>> -2 = 3 x >>> -3 = 7 x >>> -4 = 15 给出0> x>一些大的负数 -1与<< 1一样吗?但是-32 << 1 = -64。 我已经阅读了二进制补码,但仍然不明白其原因。 问题答案: 这是因为当您移位32

  • 2、逻辑移位指令 此组指令有:逻辑左移SHL(ShiftLogical Left)和逻辑右移SHR(ShiftLogical Right)。它们的指令格式如下: SHL/SHR Reg/Mem, CL/Imm 受影响的标志位:CF、OF、PF、SF和ZF(AF无定义)。 逻辑左移/右移指令只有它们的移位方向不同,移位后空出的位都补0。它们的具体功能下图(a)、(b)所示。 (a)、SHL (b)、

  • 问题内容: 如何在Python中获得两个变量的逻辑异或? 例如,我有两个期望是字符串的变量。我想测试其中只有一个包含True值(不是None或空字符串): 该运营商似乎是按位,并在所有对象没有定义: 问题答案: 如果您已经将输入标准化为布尔值,则!=为xor。

  • 无论如何,条件查询应该根据提供的与表中的颜色不匹配的表(可以是联接查询、子查询或其他任何内容),从表中提取颜色列表。

  • 我有一个用WASD控制的相机,但是我一直在左右移动它。我一直在网上寻找,它说要找到一个垂直于另一个向量的向量,你改变x和y的圆,并将其中一个乘以-1。我在下面的代码中尝试过这个: 我一直在向前移动,工作得很好,实际上是在转动相机,但由于某些原因,这不起作用,老实说,我不确定它到底是做什么的,因为当我按下或(他们称之为该功能)时,相机会发疯,开始非常快速地转动,有时会向前移动,或者像100万英里以外

  • 本文向大家介绍python实现整数的二进制循环移位,包括了python实现整数的二进制循环移位的使用技巧和注意事项,需要的朋友参考一下 题目:如何在python中实现整数的二进制循环移位? 概述 在python中,可以通过<<以及>>运算符实现二进制的左移位以及右移位,然而并没有实现循环移位的运算符,暂时也找不到可以实现循环移位的函数,所以在本文中,主要介绍了如何使用字符的切片运算实现循环位移。