首页 > 代码库 > 计算机基础

计算机基础

(这是一个MIT同学整理的6.004 Computation Structure的课程的笔记,内容清晰易懂,看一遍可以简单了解计算机组成的基本内容,一共55页,计划全部译成中文。转载请注明出处。)

(笔记原文:?https://app.box.com/s/hj73i5cnek38kpy9yw22)

?

二进制(Binary)

再6.004课程中,主要有两种形式的二进制-有符号的和无符号的(有符号的也被称为补码(two’s complement))。我们选一个二进制数1100,并且找出同样大的十进制数:

NewImage

1、二进制数中最右边的那位表示的十进制数是2 ^ 0,每向左移一位乘以二,向右移一位除以二

2、对于二进制数中的每个数字1,把这些位对应的2的幂值相加

3、无符号二进制数所有位的2的幂值都是正的

4、有符号二进制数中最左侧一位对应的2的幂值是负的

NewImage

?

八进制和十六进制(Octal and Hexadecimal)

八进制数每一位代表3位二进制的数。一位二进制的数叫做1bit,所以八进制数的1位占3bit。

十六进制的数每一位占4bit。

NewImage

有用的对应表:

NewImage

?

有符号二进制数的加法(Signed Binary Addition)

二进制加法和普通的加法差不多,注意逢二进一。

NewImage

大多数的机器内数的位数是固定的,这就会导致错误结果的出现。解决的办法我们会在后面提到。

NewImage

?

有符号二进制数的减法(Signed Binary Subtraction)

如果我们用3减去5:

1、首先我们我们把3和5用二进制数表示

2、接着找到表示-5的办法:对所有位求补再加1

3、计算3与-5的和

NewImage

注意!就像在加法中那样,我们会遇到数的位数的限制。所以你可能会遇到“对所有位求补再加1”得到的是不会该数的负值的情况。也可能发现结果没法在这个位数下被正确表示。

?

汉明距离(Hamming Distance)

计算机基础