机器数与真值
- 真值:带符号的数 +1.1011,-0.1011
- 机器数:符号数字化的数 0.1011,1.1011
原码表示法
整数
小数
举例
原码的缺点
用原码做加法时,会出现如下问题:
补码表示法
从刚才原码做加法我们可以看出,由于数的正负形不确定,导致最终做的运算也不确定,因此我们想找一个与负数等价的正数,来代替这个负数,使得减法变成加法
我们从生活中的一个例子来讲这个概念——时钟
假设现在时钟指向6点,我们要调整到3点,有两种办法:逆时针转动3小时或者顺时针转动9小时
结论:
- 一个负数加上“模”即得该负数的补数
- 一个正数和一个负数互为补数时,他们的绝对值之和即为模数
- 正数补码为其本身
- 负数补码为数值为取反加1
练习
求下列真值的补码
-70 = 1,1000110
70 = 0,1000110
0.1110 = 0.1110
-0.1110 = 1.1110
0.0000 = 0.0000
-0.0000 = 0.0000 因为由小数补码的定义,x<0时,x的补码为2+x
-1.0000 = 1.0000
反码表示法
练习
三种机器数的小结
- 最高位为符号位,书写上用“,”(整数)或“.”(小数)将数值部分和符号位隔开
- 对于正数,原码=补码=反码
对于负数,符号位为1,其数值部分
- 原码除符号位外每位取反末位加1=补码
- 原码除符号位外每位取反=反码
例题
1.设机器数字长为8位(其中1位为符号位)对于整数,当其分别代表无符号数、原码、补码和反码时,对应的真值范围各为多少?
移码表示法
移码定义
- 小数没有移码定义
这个评论系统是怎么搞的??
typecho自带评论系统