提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
真值与机械码
真值:我们书写的数字(带正负号的)
机械码,机械数:原码,反码,补码
一、原码
在计算机组成原理当中利用数学形式表示难以理解(这里我统统采用8位二进制来表示)
通俗来说,我们将一个10进制数字比如+29拆分成 ()形式
我习惯先将一个数拆分成(1,2,4,8,16,32,64,128,256,512,1024...)来做,在返回去想分别对应2的几次方
1.29=16+8+4+1;这里从大到小来做--->( 0_0 _0 _1 _1 _1 _0 _1 _)
2._ _ _ _ _ _ _ _一个下划线代表一位二进制数,第一位为符号位(0表示这个数是正数,1表示这个数是负数),后7位为数值位可以从(_0000000-_1111111)
3.转10进制:原码中除符号位外,从右向左数,数值位中第1个为1 代表,如果是第二个
,以此类推。
二、原码可以表达数字的范围(10进制)
1.从(11111111-01111111)
在10进制中(不难看出要表示128,需要九位,这就超出了我要表示的范围,所以我们8位二进制中存储不了128,同样128在原码中表示不了),负数也是同理,所以我们可以得出(-127-+127)是原码可以表示的范围(1111 1111 - 0111 1111)
2.0的原码
我们在数学中经常会将0分为+0和-0,同样在原码中也有同样的表示:
+0:(0_0_0_0_0_0_0_0)
-0:(1_0_0_0_0_0_0_0)
不难得出一个结论,0的存储耗费了两个值,这就会使得我们在存储原码时,浪费一个空间。这也是后面要提出补码的原因之一。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了原码的一些基础知识,后面还会继续更新