binary - x-y = x+¬y+1 问题

标签 binary bit-manipulation

我目前正在阅读一本关于“bit fddling”的书,出现以下公式:

x-y = x+¬y+1

但这似乎不起作用。例子:
x = 0100  
y = 0010  
x-y = 0010  
¬y = 1101  
¬y+1 = 1110  
x+1110 = 10010  

但是10010 != 0010...
我在哪里犯了错误(如果有的话)?

(这本书是 Henry S. Warren 的“Hacker's Delight”。)

最佳答案

你只有一个四位系统!最终结果左侧的额外 1 不存在。它应该是:

x  = 0100
y  = 0010
~y = 1101
~y + 1 = 1110
x + 1110 = 0010

另一位溢出,并且不是您的结果的一部分。您可能想阅读 two's complement arithmetic .

关于binary - x-y = x+¬y+1 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3453843/

相关文章:

c - c语言的套接字编程

c - 如何向字节添加和提取位?

c++ - 什么是n = n ^ 1U << i?

c# - 按位移位 - 在 C# 中获得与在 php 中不同的结果

python - 从字符串列表创建 TfRecords 并在解码后在 tensorflow 中提供图形

c - 将所有位设置为最低有效位

mysql - 使用 utf8_bin 排序规则时,是否必须将 MySQL varchar 列标记为二进制?

image - 在 Java 中将图像和音频文件转换为二进制文件

c++ - 按位与逻辑

检查是否设置或清除了多个位