数制与数值转换
进制:人为定义的带进制的计数方式
数制的表示:
二进制 B
八进制 O
十进制 D
十六进制 H
其他进制转换为十进制
八进制转二进制:
十六进制转二进制
计算机中的数值表示:整数、浮点数
一、机器数
是数在计算机中的表示形式
1.原码:
原码是一种简单的机器数表示方法,用第一位表示符号(0为正数,1为负数),其余位表示值。
[+10011]原 = 0001 0011
[-10011]原 = 1001 0011
[+0]原 = 0000 0000
[-0]原 = 1000 0000
2.反码:
正数的反码与原码相同,负数的反码是原码符号位保持不变其余位取反。
[+10011]反 = 0001 0011
[-10011]反 = 1110 1100
[+0]反 = 0000 0000
[-0]反 = 1111 1111
3.补码:
正数的补码与原码相同,负数的补码是在其反码的基础上+1(符号位会发生变化)。
[+10011]补 = 0001 0011
[-10011]补 = 1110 1101
[+0]补 = [-0]补 = 0000 0000
补码无+0与-0之分
因此人们规定1000 0000为-128
8位二进制数补码的标示值范围是:-128 ~ 127
对于N位二进制数它的补码表示范围是:-(2N-1)~ +(2N-1-1)
4.移码:
移码是补码符号位取反(无符号位)
[+1101]补 = 01101
[+1101]移 = 11101
[-128]移 = 0000 0000 不考虑符号位值是0
[+128]移 = 0000 0000 不考虑符号位值是255
值加上128(27),相当于原把来负数范围全部移到正数范围
阶码:
移码 - 1
0000 0111(原码) ==> 1000 0111(移码) ==> 1000 0110(阶码)
相当于移码 + 127
整数表示
为简化正负数加法运算,整数使用补码存储
- 正整数存储二进制原码
- 负整数存储二进制补码
机器字长 1B = 8bit
浮点数表示
浮点数--存储指数值和符号、小数值和符号