各种数值在计算机中的表示形式称为机器数,其特点时采用二进制计数制,数的符号用0或1表示,小数点则隐含,表示不占位置,机器数对应的实际数值称为数的真值。
机器数的编码方法称为码制
码制度 | 技巧 | 正 | 正0 | |
负 | ||||
负0 | ||||
原码 | 正0负1,其他不变 | [+1]原=0 0000001 | [-1]原=1 0000001 | [+0]原=0 0000000 |
[+45]原=0 0101101 | [-45]原=1 0101101 | |||
[+127]原=0 1111111 | [-127]原=1 1111111 | [-0]原=1 0000000 | ||
[+0.5]原=0 1000000 | [-0.5]原=1 1000000 | |||
反码 | 正0负1,负数逐位取反 | [+1]反=0 0000001 | [-1]反=1 1111110 | [+0]反=0 0000000 |
[+45]反=0 0101101 | [-45]反=1 1010010 | |||
[+127]反=0 1111111 | [-127]反=1 0000000 | [-0]反=1 1111111 | ||
[+0.5]反=0 1000000 | [-0.5]反=0 0111111 | |||
补码 |
正0负1,负数逐位取反 末尾加1 | [+1]补=0 0000001 | [-1]补=1 1111111 | [+0]补=0 0000000 |
[+45]补=0 0101101 | [-45]补=1 1010011 | |||
[+127]补=0 1111111 | [-127]补=1 0000001 | [-0]补=0 0000000 | ||
[+0.5]补=0 1000000 X | [-0.5]补=1 1000000 2+X | |||
移码 |
在补码的基础上 符号位取反 | [+1]移=1 0000001 | [-0]移=0 1111111 | [+0]移=1 0000000 |
[+45]移=1 0101101 | [-0]移=0 1010011 | |||
[+127]移=1 1111111 | [-0]移=0 0000001 | [-0]移=1 0000000 | ||
[+0.5]移=1 1000000 | [-0]移=0 1000000 |
机器字长位n时,码制表示的符号范围
码制 | 定点整数(~包含关系) | 定点小数 |
原码 | -(2^(n-1)-1)~ +2^n-1 | -(1-2^-(n-1))~ +(1-2^-(n-1)) |
反码 | -(2^(n-1)-1)~ +(2^n-1) | -(1-2^-(n-1))~ +(1-2^-(n-1)) |
补码 | -(2^(n-1))~ +2^(n-1)-1 | -1 ~ +(1-2^-(n-1)) |
移码 | -(2^(n-1))~ +2^(n-1)-1 | -1 ~ +(1-2^-(n-1)) |