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

Python:无符号32位按位算术

姚高爽
2023-03-14
问题内容

试图回答另一篇有关其解决方案涉及IP地址和网络掩码的文章时,我陷入了普通的按位算法

在Python中,是否存在一种标准的方式来进行按位AND,OR,XOR,NOT运算,假设输入是“ 32位”(可能是负数)整数或long,并且结果必须是[[0,2 ** 32]?

换句话说,我需要一个与无符号长整数之间的C按位运算有效的Python对应物。

编辑:具体问题是这样的:

>>> m = 0xFFFFFF00   # netmask 255.255.255.0
>>> ~m
-4294967041L         # wtf?! I want 255

问题答案:

您可以通过0xFFFFFFFF以下方式屏蔽所有内容:

>>> m = 0xFFFFFF00
>>> allf = 0xFFFFFFFF
>>> ~m & allf
255L


 类似资料:
  • 我们需要将Javascript散列算法转换为Perl代码。因此,我们需要将JavaScript的按位移位操作符<<、>>和>>>转换为Perl。到目前为止,我们已经有了进行转换的算法,但是由于Javascript按位移位操作符对32位整数进行操作,我们还需要在Perl中模拟这一点。 根据这篇文章https://stackoverflow.com/a/41610348,我们了解到我们可以在Pytho

  • 问题内容: 我在Redis上使用Lua,想比较两个带符号的64位数字,这些数字存储在两个8字节/字符的字符串中。 如何使用Redis中可用的库进行比较? http://redis.io/commands/EVAL#available- libraries 我想知道并检查。我认为这可能涉及为每个64位int提取两个32位数字,并对它们进行一些巧妙的数学运算,但是我不确定。 我有一些代码可以使这一过程

  • 问题内容: 我可以使用单个与号代替类似的按位运算符吗?可能会出现什么样的差异,是否有特定的示例可以清楚地说明此问题? 问题答案: 单身人士将始终检查这两个条件。如果双精度值判断为false,则它将在第一个条件之后停止。如果确实只需要1个2的条件为真或假,则使用2是“短路”状态检查的一种方法。 例如: 如果为,则第一个条件将失败,并且不会费心检查它的值。这是避免空指针的一种方法。 与和两个操作数始终

  • 有符号和无符号变量在按位运算上有区别吗?< br >例如,在处理无符号数字时:< br> 将得到00000101。 但当处理带符号的数字时会发生什么?

  • 问题内容: 本机整数算术指令是否比其计数器部件慢(在装有OS的计算机上)? 编辑:在当前CPU上,例如Intel Core2 Duo,i5 / i7等。 问题答案: 这取决于确切的CPU和操作。例如,在64位Pentium IV上,64位寄存器的乘法要慢得多。Core 2和更高版本的CPU从一开始就设计用于64位操作。 通常,即使是为64位平台编写的代码也使用32位变量,其中的值将适合它们。这主要

  • 问题内容: 我对何时应该使用布尔运算符与按位运算符感到困惑 与 与 有人能启发我何时使用每种药物,何时使用一种药物会影响我的结果? 问题答案: 以下是一些准则: 布尔运算符通常用于布尔值,而按位运算符通常用于整数值。 布尔运算符是短路,但按位运算符不是短路。 短路行为在这样的表达式中很有用: 按位运算&符将无法正常工作,因为总是会评估双方,即。当你使用布尔运算符时,如果第一个为False,则不计算