1

我是 Swift 新手,正在尝试学习“有符号整数的移动行为”的概念。我从“快速编程语言 2.1”中看到了这个例子。

我的问题是:为什么计算中也包含符号位?

我经历了几种数字组合,它们都有效,但我似乎没有找到原因,包括计算中的符号位。

要将 -1 添加到 -4,只需执行所有八位(包括符号位)的标准二进制加法,并在完成后丢弃任何不适合八位的内容:

在此处输入图像描述

4

2 回答 2

1

这不是 Swift 独有的。然而,从历史上看,计算机并没有减去,它们只是添加。要计算 AB,请对 B 进行二进制补码并将其添加到 A。二进制补码(否定所有位并加 1)意味着最高位将是 0 用于正数(和零),或 1 用于负数。

于 2016-02-23T04:12:31.567 回答
1

这称为 2 的补码数学,允许通过简单的运算完成加法和减法。这是许多硬件平台实现算术的方式。你应该更多地研究你想要更深入理解的 2 的补码算法。

于 2016-02-23T04:14:39.507 回答