【计算机组成原理】真值与机器值&小数原码与整数原码定义及举例
前言:
昨天受到了来自同事的冲击,希望有一天我也可以成为更加优秀的人,无论言谈举止、身心状态或是专业技能;现在要做的就是比昨天的自己更加更加强大。昨天看到pyq发的一段话很喜欢,分享给大家:
- 你要工作就要认真,要学习就要认真,就算你做一个流氓也要认真,认真是我们参与这个社会的方式,认真是我们改变这个社会的方式。
1.1真值和机器值
- 真值:生活中用到的带有
+
、-
符号的数,如+8
、-3
等称为真值;真值是机器数代表的实际值。 - 机器数:把符号"数字化"的数称为机器数。常用的有
原码
、补码
、反码
表示法。将数据符号化后放入到首位,0
表示+
、1
表示-
。如(以二进制八位原码为例):- +5 = 0,0000101 ; +32 = 0,0100000 (5 = 4+1 = 22 + 20 所以在第1,3位上1 ;32 = 25所以在第6为上1)
- -8 = 1,0001000 ; -116 = 1,1110100 (这里的逗号实际上不存在,只是用来区分
符号位
和数值位
)
那么问题就来了,什么是原码
、补码
、反码
呢?
1.2原码
比较简单直观的机器数表示法,一般用机器数的最高位表示该数的符号,其余的各位表示数的绝对值。一般用[x]原
表示x
这个真值
的原码机器数
;原码的定义中有小数原码
和整数原码
,我们先来看整数原码(因为比较简单):
-
纯整数
原码定义其中
x
是真值,n
是整数位数(字节);若字节长为n+1
,则源码整数的表示范围为 -(2n-1)≤x≤2n-1 关于原点对称。看起来有点复杂,其实很简单!举例子(以二进制八位为例):- +5 = [0,0000101]原 ; +32 = [0,0100000]原 (5 = 4+1 = 22 + 20 所以在第1,3位上1 ;32 = 25所以在第6为上1)
- -8 = [1,0001000]原 ; -116 = [1,1110100]原 (最高位是
符号位
;正经整数真值转原码
的方法为除基取余法)
-
纯小数
原码定义若字节长为
n+1
,则源码整数的表示范围为 -(1-2-n)≤x≤1-2-n 关于原点对称。举例子:- 0.25 = [0.0100000]原(0.25 = 2-2 ;小数点位数权重从右到左为 0.5、0.25、0.125…这是快速求出
小数真值对应原码
的方法,正经方法还要是乘积取整法) - -0.75 = [1.1100000]原(最高位的
0
,1
仅代表纯小数的正负)
- 0.25 = [0.0100000]原(0.25 = 2-2 ;小数点位数权重从右到左为 0.5、0.25、0.125…这是快速求出
更新了后续知识点:
反码
&补码
&移码
相关知识点 - 【计算机组成原理】反码&补码&移码的定义、相互转换及特征.
结束语:
这次时间比较伧俗,新学习了mermaid
流程图;下次更新进制间的转换
或反码
、补码
、移码
的定义转换,如果有想知道原补码的加减乘除
等知识的也可以给我留言。废话就到这里了,溜了溜了;空闲之余去卷一下技术orz。感谢阅读!