我是Swift的新手,正在尝试学习“改变签名整数行为”的概念。我从“swift编程语言2.1”中看到了这个例子。
我的问题是:为什么符号位也包含在计算中?
我经历过几个数字组合并且它们都有效,但我似乎没有理由在计算中包含符号位。
要添加-1到-4,只需执行标准二进制加法即可 全部八位(包括符号位),并丢弃任何内容 一旦完成,就不适合八位:
答案 0 :(得分:1)
这不是Swift特有的。然而,从历史上看,计算机并没有减去,他们只是补充说。要计算AB,请执行B的二进制补码并将其添加到A.两个补码(取消所有位并加1)意味着正数的最高位为0 (和零),或负数的1。
答案 1 :(得分:1)
这称为2的恭维数学,允许通过简单的操作完成加法和减法。这是许多硬件平台实现算术的方式。您应该更多地了解2的恭维算术,您需要更深入的理解。