每日总结

数的表示

机器数:各种数值在计算机中表示的形式,其特点是使用二进制计数制,数的符号用0和1表示,小数点则隐含,不占位置。

机器数有无符号数和带符号数之分。无符号数表示正数,没有符号位。带符号数最高位为符号位,正数符号位为0,负数符号位为1。

定点表示法分为纯小数和纯整数两种,其中小数点不占存储位,而是按照以下约定:

纯小数:约定小数点的位置在机器数的最高数值位之前。

纯整数:约定小数点的位置在机器数的最低数值位之后。

真值: 机器数对应的实际数值。

数的编码方式

原码:一个数的正常二进制表示,最高位为符号位。

数值 0 的原码有两种形式:+0(0 0000000) 和 -0 (1 0000000)

反码:正数的反码及原码;负数的反码是在原码的基础上,除了符号位以外,其他各位按位取反。

数据 0 的反码:+0 (0 0000000) 和 -0 (1 1111111)

补码:正数的补码及原码;负数的补码是在原码的基础上,除了符号位以外,其他各位按位取反然后末位 +1;若有进位就产生进位。因此,数值 0 的补码只有一种形式 +0 = -0 = 0 0000000.

移码:用作浮点数运算的阶码。无论是正数还是负数,都是将原码的补码的首位(符号位)取反,得到移码。

浮点数的表示

浮点数:表示方法为N= F × 2^E,其中E称为阶码,F称为尾数;类似于十进制的科学计数法,如85.125 = 0.85125×10^2,二进制如 101.011 = 0.101011×2^3。

算术运算与逻辑运算

数与数之间的算术运算包括加、减、乘、除等基本算术运算,对于二进制数,还应该掌握基本逻辑运算,包括: 逻辑与&:0和1相与,只要有一个为0结果就为0,两个都为1才为1。

逻辑或|: 0和1相或,只要有一个为1结果就为1,两个都为0才为0。

异或: 同0非1,即参加运算的二进制数同为0或者同为1结果为0,一个为0另一个为1结果为1。 逻辑非!:0的非是1,1的非是0。 逻辑左移<<: 二进制数整体左移n位,高位若溢出则舍去,低位补0. 逻辑右移>>:二进制数整体右移n位,低位溢出则舍去,高位补0。

校验码

码距:就单个编码A: 00而言,其码距为1,因为其只需要改变一位就变成另一个编码。

在两个编码中,从A码到B码转换所需要改变的位数称为码距,如A:00要转换为B:11,码距为2。一般来说,码距越大,越利于纠错和检错

奇偶校验

奇偶校验码:在编码中增加 1 位校验位来使编码中1的个数为奇数(奇校验)或者偶数(偶校验),从而使码距变为2。

奇校验:编码中,含有奇数个1,发送给接收方,接收方收到后,会计算收到的编码有多少个1,如果是奇数个,则无误,是偶数个,则有误。

偶校验同理,只是编码中有偶数个1,由上述,奇偶校验只能检1位错,并且无法纠错。

海明校验码

海明码:本质也是利用奇偶性来检错和纠错的检验方法,构成方法是在数据位之间的确定位置上插入k个校验位,通过扩大码距实现检错和纠错。

设数据位是n位,校验位是k位,则n和k必须满足以下关系: 2^k-1>=n+k。

posted @ 2023-10-14 21:51  一个小虎牙  阅读(6)  评论(0编辑  收藏  举报