我是 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:
最佳答案
这并不是 Swift 独有的。然而,从历史上看,计算机并不是做减法,而是做加法。要计算 A-B,请对 B 进行二进制补码并将其与 A 相加。二进制补码(对所有位取反并加 1)意味着对于正数(和零)最高位将为 0,对于正数则最高位为 1。负数。
关于swift - 为什么负数的计算中会包含 "sign bit"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35568606/