计算机组成原理笔记(一):数的机器码表示

数的机器码

    • 一、引例
    • 二、原码
    • 三、补码
    • 四、移码

一、引例

先来个自我介绍吧,本人现在大二学生一枚,怀着激动的心情决定开始记录下自己每天的进步,今天也算起了个大早学习来预习功课,今天学习到的就是数的机器码。让我们先通过一个简单的问题来引出我们的”几大主人公”。
问题描述:

现在有十个袋子,每个里面有十个金币,有一袋假金币,真金币重10g,假金币重9g,现在给你一杆秤,最少称几次可以找出假金币?

问题解答: 答案为一次。我们只需要将这10个袋子从0开始依次编码到9,随后依次取出对应编码数量的金币,如果重为45g,则编号为0的袋子是假的,否则,与45g差多少就是几号袋子为假的。
看到这里,你有没有感到编码的神奇之处。好啦,我们go on!

二、原码

让我们先来看个表格

原码(二进制表示即可) 真值(十进制)
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 -0
1001 -1
1010 -2
1011 -3
1100 -4
1101 -5
1110 -6
1111 -7

通过这张表,我们不难看出,用原码的表示方法:第一位为符号位,对于四位二进制的取值范围就是[-7,+7]。
但是,我们用原码进行计算时就会出现问题
计算机组成原理笔记(一):数的机器码表示_第1张图片
所以我们则引入了补码。

三、补码

今天小森发呆之时,看着钟表滴答滴答,发现好像时间不对劲,现在是3点,而钟表显示8点,那么我要么顺时针拨动5周,要么逆时针拨动7周,这实际上就用到了我们的补码,对于钟表,我们可以认为模为12即mod 12。
那么我们就可以通过该公式:当x<0时,[x]补码=mod+x,我们来通过一个计算(-001)的补码来深层次的理解下这个公式
计算机组成原理笔记(一):数的机器码表示_第2张图片
这也就是我们经常挂在嘴边的取反加一
同样如果想求真值x也可以逆用该公式,或者用:计算机组成原理笔记(一):数的机器码表示_第3张图片
注:Xn这里指的为符号位。
另一种方法: 从补码构成角度求负数补码真值

补码构成: 符号位+补数
方法:将符号位后的补数拿走全部替换为0-补数

四、移码

其实呢,x的移码=移动的数值+x,也就是呢,移动多少加多少。或者将补码的符号位取反即可。

最后在附上一篇博客园的文章供大家深入再学习
>数的机器码<

文章不足之处欢迎大家评论~

你可能感兴趣的:(数的机器码)