5.1 数制与编码5.1.1 十进制 略,我来为大家讲解一下关于计算机逻辑的基本运算?跟着小编一起来看一看吧!

计算机逻辑的基本运算(计算机组成数据表示与运算)

计算机逻辑的基本运算

5.1 数制与编码

5.1.1 十进制 略

5.5.2 BCD码

使用"0"至"9"这十个数值的二进码来表示。这种编码方式,在中国大陆称之为“8421码”。四位一转换,最大为9,二进制则为1001

5.2 校验码

计算机系统运行时,各个部之间要进行数据交换. 为确保数据在传送过程正确无误,常使用检验码.

5.2.1 奇偶校验码

奇校验码:添加一位校验位使“1”的个数为奇数

偶校验码:添加一位校验位使“1”的个数为偶数

5.2.2 海明码

n k<=2^k - 1 (n为信息位,k为校验位)

5.2.3 CRC码

校验位为生成多项式的最高次幂

5.3 定点数

5.3.1 移位

算术移位:算术移位 就需要分有符号型值和无符号型值 。对于无符号型值,算术移位等同于逻辑移位。而对于有符号型值 ,算术左移等同于逻辑左移,算术右移补的是符号位,正数补0,负数补1。

逻辑移位:对于逻辑移位,就是不考虑符号位,移位的结果只是数据所有的位数进行移位。根据移位操作的目的,左移时,低位补0,右移时,高位补0;缺少的数字用 0填充

5.3.2 补码

补码的表示方法是:

正数的补码就是其本身

负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后 1. (即在反码的基础上 1)

[ 1] = [00000001]原 = [00000001]反 = [00000001]补

[-1] = [10000001]原 = [11111110]反 = [11111111]补

对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.

原码正数:没有任何区别

原码负数:原码除符号位取反 1(原码转补码,补码转原码都一样)

数值:数值(1位符号位,7位数值位);最大 127,最小-128

相反数:包括符号位取反再 1;加法:连同符号位一起直接加

5.3.3 移码

移码表示法是在数X上增加一个偏移量来定义的,常用来表示浮点数中的阶码,所以是整数。如果机器字长为n,规定偏移量为2^(n-1)。若X是整数,则[X]移=2^(n-1) X

则[ 45]= 0101101 10000000, [-45]=-0101101 10000000=01010011

实际上由此可推出,在偏移2^(n-1)的情况下,只要将补码的符号位取反便可获得相应的移码表示。【在移码表示中,0也编码是相同的,[ 0]移=1000000,[-0]移=1000000。】

n位移码:跟补码的符号位相反

5.3.4 反码

反码的表示方法是:

正数的反码是其本身

负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.

[ 1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算.

原码正数:没有任何区别

原码负数:原码除符号位取反

5.3.5 溢出

① 两个正数相加,若结果为负,称为上溢。 (即:计算结果大于机器所能表示的最大正数)

② 两个负数相加,若结果为正,称为下溢。 (即:计算结果小于机器所能表示的最小负数)

溢出的特征:因为补码是连同符号位一起计算的,运算过程中,当最高有效数值位的运算进位与符号位的运算进位不一致时,将产生运算“溢出”。

对溢出的检测:

1.单符号法:符号位运算进位Cf,最高有效数位运算进位Cn-1, 则:当 Cf≠Cn-1时,即产生“溢出”。溢出逻辑表达式为: V=Cf⊕Cn-1

2.双符号法:符号位扩展成两位,0变00,1变11,再进行运算,如果运算出的两个符号位不相同,说明最高有效位和符号位的进位不一样(运算完成后,左边第一个符号代表原来符号位进位,第二个代表 最高数值位进位。所以第一位永远是正确的符号位)。就发生了溢出。(用异或门检查是否一样)

一位符号位:CF异或C1,CF就是符号位的进位

两位符号位:01——正溢;10——负溢 作者:先生染 https://www.bilibili.com/read/cv11757483 出处:bilibili

,