swift - 为什么负数的计算中会包含 "sign bit"?

标签 swift bitwise-operators signed signed-integer

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

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

我经历了几种数字组合,它们都有效,但我似乎不明白在计算中包含符号位背后的原因。

To add -1 to -4, simply by performing a standard binary addition of all eight bits (including the sign bit), and discarding anything that doesn't fit in the eight bits once you are done:

enter image description here

最佳答案

这并不是 Swift 独有的。然而,从历史上看,计算机并不是做减法,而是做加法。要计算 A-B,请对 B 进行二进制补码并将其与 A 相加。二进制补码(对所有位取反并加 1)意味着对于正数(和零)最高位将为 0,对于正数则最高位为 1。负数。

关于swift - 为什么负数的计算中会包含 "sign bit"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35568606/

相关文章:

ios - 通用类不将委托(delegate)调用转发给具体子类

ios - VKSdk 如何在 Swift 中设置委托(delegate)?

ios - 没有 Storyboard的 CollectionView Controller 创建

javascript - 使用按位运算符(JSFeat)修改图像像素

整数上的 Java 按位 "&"

java - 在java中将负int赋给long

ios - 从 Firebase 快照保存/检索数据

c++ - 为什么 C/C++ 按位异或运算符关心符号?

c - 内存如何存储有符号和无符号字符

android - 导出带有 ProGuard 错误的签名 APK