|
|
1
2
正数有一个前导零的无限序列。也就是说,如果我们需要表示数字100101(等于37),那等于。。。000100101,前面有任意数量的零。没有任何计算机系统会尝试存储所有这些前导零,因为前导零的数量是无限的,但可能会存储一些前导零,以便将数字填充到“合理”的大小,例如32或64位。
Python将这个概念扩展到负数,表示负数的前导数是无限的
一个
。所以如果你需要代表-37,那就是。。。111011011,前面需要多少就有多少。类似地,-1只是。。。所以如果用另一个Python整数对-1进行异或运算,它会翻转
全部的
该数字的位,包括其前导的0或1(就像使用了tilde运算符一样)。不幸的是,Python没有方便的二进制表示法来表示“无限前导数”,因此您无法编写(例如)
虽然这听起来很荒谬,但实际上在数学上是合理的。在 2-adic numbers ,这些前导数为无穷大的序列形式上等价于相应的负整数。如果您更喜欢一种更扎根于计算机工程的方法,您可以想象Python会自动进行整数运算 sign-extend 无论它们需要多宽(这或多或少是实际的实现)。 |
|
|
2
1
|
|
|
Yann · 精灵套件:带有两个精灵的彩色异或逻辑。黑+黑=白 8 年前 |
|
|
user5005768Himadree · 异或门如何构成给定电路? 8 年前 |
|
|
mandoza · Java xor解码器[关闭] 8 年前 |
|
|
OneManRiot · 翻转字节中的最后一位 11 年前 |