进制数;
计算机 二进制 但是 人们嫌麻烦 常用 八进制或十六进制 写指令或程序。
八进制 表示如下
十进制整数 转 2进制,用2的次方相加
因此
十进制 转 八进制(16同理) 就容易啦
方法是 先转2 2进制到8进制,3位 2进制就是一个8进制数。
十进制小数 转2进制注意:
乘以2 取整。
例1:将0.125换算为二进制
得出结果:将0.125换算为二进制(0.001)2
分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;
第二步,将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;
第三步,将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;
第四步,读数,从第一位读起,读到最后一位,即为0.001.
二进制 八进制 十六进制 转换:
8 可以转为 3个二 ,16转为 4个2
2进制转十进制:按权相加。
如果8进制转 10进制。先8转2 2再转0
因为8 或16 比较简短,转2进制又方便。所以是计算机工作者常用8 或16进制的原因。
计算机数据格式:
定点数:约定好小数点的位置,就不写小数点了。
8位无符号数范围是 : ( 00000000~11111111) 0~2^8-1
有符号数 第一位表示符号(0 是正数,1 是负数)
定点数 通常是表示
纯小数
(x0 x1 x2 … xn 数值位各位均为0时绝对值最小;数值位各位均为1时绝对值最大)
即这些数为: -0.11……1 <= x <= +0.11……1
|n个1| |n个1|
上结论: 0 < = |x| <= 1-2^-n
于是
-(1-2^-n) <= | x | <= 1-2^-n
1-2^-n怎么得到呢
如下
纯整数
(x0 x1 x2 … xn 数值位各位均为0时 绝对值最小;数值位各位均为1时绝对值最大)
-(2^n-1) <= x <= 2^n -1
即 -11……1 <= x <= + 11……1
问 :
机器字长为32位,定点表示时,数符1位,尾数31位。
则:定点整数表示时,
最大正数值 = _________2^31 - 1______________, (011……1)
最小负数值 = ________-2^31 - 1______________。 (11……1)
定点小数表示时,
最大正数值 =__________1 – 2^-31____________, (01……1)
最小负数值 =________-(1 – 2^-31)___________。 (11……1)
浮点数
一个机器浮点数 有 阶码(指数) 尾数(纯小数)及 符号位 组成。
CRC校验码:
被除数添上比除数位数少1的0 ,余数的位数比除数少1 余数就是冗余码
接收端收到数据帧后,用上面选定的除数,用模2除法除去,验证余数是否为0,如果为0,则说明数据帧没有出错。
模2除法 就是只减去,不向高位借位
海明码: 可以理解的例题 https://blog.csdn.net/u010800530/article/details/45507649