L1 Number Representation

前言

这一讲主要讲解了数制,说来话长。

大学一年级上学期的时候,我在计算机与C语言通识课程上,第一次了解到二进制、进制转换、反码、补码,但是当时没有对补码有一个非常充分的认识。

后来我在大学二年级下学期数字电路课程中又学了一次,还是没懂。

第三次是大学三年级上学期的计算机原理应用课程,依然只能背下来补码的定义。

最最最后,我终于理解了为什么这么设计补码是在CSAPP中构造的那个例子。

4+(4)=0

对应

0100+XXXX=0000

那么这个XXXX就应该是这样一个数字,即他能跟前面的数字刚好补充,同时溢出,对应成数学操作就是对前面的取反加1。

从我第一次接触到这个概念到我真正不是背下来他而是理解他,只差了一句话,但是过程却差了三年..........

正文

我们看一下这一讲解的主题。
Pasted image 20240917213000.png

Big Idea: Bits Can Represent Anything

这个很简单,就是说0和1进行一定的编码能表示成任何东西,只要扩展位,二进制能表示的事物可以任意多。

Numbers in Different Bases

这个实在是学过很多遍了,我们不学了,但是cs61c里面的10进制转换有点意思,可以看看链接

这里面放一个这个尊重下课程吧

Pasted image 20240917213356.png

Representing Integers

Unsigned Integers

Useful if you don't need negative numbers.

Pasted image 20240917213754.png

overflow

Pasted image 20240917213957.png

Sign-Magnitude

Pasted image 20240917214400.png

One's Complement

Pasted image 20240917214436.png

Two's Complement

Pasted image 20240917214853.png
Pasted image 20240917214931.png

Pasted image 20240917215159.png

Pasted image 20240917215206.png

Bias Notation

(待续)

总结

Pasted image 20240917215523.png