一、数制与编码
1、进位计数法
进位计数法是一种计数的方法。比如常用的十进制数、二进制数、八进制数。
基数是什么?
在进位计数法中,每个数位所用到的不同数码的个数称为基数。比如十进制的基数为10(0-9)。
位权是什么?
十进制101,其个位的1显然与百位的1所表示的数值不同。每个数码所表示的数值等于该数码本身乘以一个与它所在位数相关的常数,这个常数叫做位权。
2、进制转换
2.1 任意进制转换为十进制
按权展开相加法:将任意进制的数各位数码与它们的权值相乘,再把乘积相加,就得到一个十进制数。
2.2 十进制转换为任意进制
基数乘除法:对十进制的整数部分采用除基取余法,对于小数部分采用乘基取整法,最后拼接起来。
2.3 二进制转换位八进制和十六进制
对于一个包含整数和小数的二进制,转换时以小数点位界。其整数部分从小数点开始往左数,分为3位(八进制)一组或4位(十六进制)一组,在数的最左边根据需要补0。小数则往右数,同上,在数的最右边根据需要补0。
2.4 真值和机器数
2.5 BCD码
二进制编码的十进制数(BCD),通常采用4位二进制数来表示一位十进制数中的0-9这10个编码。好处就是可以使二进制和十进制之间快速转换。但是4位二进制可以表示16种代码,故必有6种冗余状态。
8421码是最常用的BCD码。
2.6 大端小端模式
这是两种存储字符串时常用的两种方式。字符串是指连续的一串字符,占用主存中连续的多个字节,每个字节存储一个字符。
大端模式:存储单元内先存储高位字节、后存储低位字节的顺序。
小端模式:存储单元内先存储低位字节、后存储高位字节的顺序。
2.7 校验码
校验码是什么?
校验码是指能够发现或能够自动纠正错误的数据编码,也称为检错纠错编码。原理就是通过增加一些冗余码,来检验或纠错编码。
码距是什么?
通常某种编码都由许多码字构成,任意两个合法码字对应位上的数字的不同位的个数称为校验码的码距。
1、奇偶校验码
缺点:奇偶校验只能发现奇数位出错情况,但不能纠错,常用于存储器数据的检查或传输数据的检查。
2、海明码(看书或看视频吧)
3、循环冗余校验(CRC)码(看书或看视频吧)
二、定点数的表示和运算
1、定点数的表示
1.1 无符号数和有符号数的表示
有符号数:有符号数中,0为正,1为负。将符号位放在有效数字的前面,组成有符号数。有符号数的机器表示有原码、反码、补码、移码。
1.2 机器数的定点表示
根据小数点的位置是否固定,分为定点表示(事先约定)和浮点表示(按规则浮动)。
定点小数:定点小数就是纯小数,约定小数点位置在符号位之后、有效数值部分最高位之前。
定点整数: 定点整数就是纯整数,约定小数点位置在有效数值部分最低位之后。
2、定点数的运算
2.1 定点数的移位运算
机器数采用无符号数:逻辑移位
逻辑左移,高位移丢,低位补0;逻辑右移,低位移丢,高位补0。
机器数采用有符号数:算数移位
总结:
算术左移和算术右移主要用来进行有符号位的倍增、倍减。
逻辑左移和逻辑右移主要用来进行无符号位的倍增、倍减。
2.2 定点数的加减运算