diff --git a/docs/notes/01_c-basic/02_xdx/index.md b/docs/notes/01_c-basic/02_xdx/index.md index 4e81897..f15a0fb 100644 --- a/docs/notes/01_c-basic/02_xdx/index.md +++ b/docs/notes/01_c-basic/02_xdx/index.md @@ -1156,10 +1156,10 @@ int main() { > [!NOTE] > -> * ① 加法和减法是计算机中最基本的运算,计算机时时刻刻都离不开它们,所以它们由硬件支持支持。为了提高加法和减法的运行效率,硬件电路必须设计得尽量简单。 -> * ② 对于有符号位的数字来说,内存需要区分符号位和数值位:对于人类来说,很容易识别(最高位是 0 还是 1);但是,对于计算机来说,需要设计专门的电路,这无疑增加了硬件的复杂性,增加了计算时间。如果能将符号位和数值为等同起来,让它们一起参与运算,不再加以区分,这样硬件电路就可以变得简单。 +> * ① 加法和减法是计算机中最基本的运算,计算机时时刻刻都离不开它们,所以它们由硬件直接支持。为了提高加法和减法的运行效率,硬件电路必须设计得尽量简单。 +> * ② 对于有符号位的数字来说,内存需要区分符号位和数值位:对于人类来说,很容易识别(最高位是 0 还是 1);但是,对于计算机来说,需要设计专门的电路,这无疑增加了硬件的复杂性,增加了计算时间。如果能将符号位和数值位等同起来,让它们一起参与运算,不再加以区分,这样硬件电路就可以变得简单。 > * ③ 此外,加法和减法也可以合并为一种运算,即:加法运算。换言之,减去一个数就相当于加上这个数的相反数,如:5 - 3 相当于 5 +(-3),10 -(-9)相当于 10 + 9 。 -> * ④ 如果能够实现上述的两个目标,那么只需要设计一种简单的、不用区分符号位和数值为的加法电路,就能同时实现加法和减法运算,而且非常高效。其实,这两个目标已经实现了,真正的计算机硬件电路就是这样设计的。 +> * ④ 如果能够实现上述的两个目标,那么只需要设计一种简单的、不用区分符号位和数值位的加法电路,就能同时实现加法运算和减法运算,而且非常高效。其实,这两个目标已经实现了,真正的计算机的硬件电路就是这样设计的。 > * ⑤ 但是,简化硬件电路是有代价的,这个代价就是有符号数在存储和读取的时候都要继续转换。这也是对于有符号数的运算来说,计算机底层为什么使用补码的原因所在。 * `最高位`表示`符号位`,由于符号位的存在,如果使用`原码`来计算,就会导致`计算结果不正确`,即: