本文介绍定点运算和浮点运算。定点运算中包括定点加法、减法;定点乘法;定点除法。浮点运算中包括浮点加法、减法;浮点乘法;浮点除法。
定点运算
- 计算机中的数制
- 二进制(0,1),数据后缀是B
- 八进制(0~7),数据后缀是Q
- 十进制(0~9),数据后缀是D,一般省略
- 十六进制(0~9,A~F),数据后缀是H,如果数据的是以A~F开始,前面必须加0
- 数制之间的转换
- 其它进制转十进制:按权展开
- 十进制转二进制: 整数”除2取余”,小数”乘2取整”
- 二进制转十六进制:4位二进制数转1位16进制数
- 二进制转八进制:3位进制数转1位8进制数
- 二进制
- 无符号数
- 定义:整个机器字长的全部二进制位均表示数值位,相当于数的绝对值。
- 常见: 8位范围:0~255;16位范围:0~65535。
- 有符号数
- 定义:带有数码化的正负号的数称为有符号数或机器数,习惯上约定机器数的最高位为其符号位,0表示正数,1表示负数。
- 无符号数
- 定点表示
-
定义:约定机器中所有数据的小数点位置是固定的,由数符和尾数构成。
- 定点纯小数
- 定义:假想的小数点在数符后面。
-
范围:0<= x <=1-2^(-n)
- 定点纯整数
- 定义:假想的小数点在最后一位后面
-
范围:0<= x <=2^n-1
-
- 定点表示—机器码(有符号数)
-
机器码:在计算机中通常把符号位和数字位一起编写相应的数。常用的机器码有原码、反码、补码和移码。
- 真值:一般书写表示的数据(常见的十进制数)。
- 移码
- 定义:
- 移码规则:真值x加上2^(n-1),然后把计算的结果转化位二进制数。(n表示多少位的顶点表示)
- 特点:
- 1表示正数,0表示负数。
- 原码
- 定义:
- 原码规则:真值的绝对值转化为二进制,倘若真值是正数,符号位为0;若是负数,符号位为1。0有两种表示方法。
- 特点
- 原码的数值部分是该数的绝对值,最高位表示符号位,最高位为0是正数,最高位为1是负数。
- 0有两种表示法:[+0]原=0000 0000;[-0]原=1000 0000
- 采用原码表示法简单易懂,但是运算复杂。
- 反码
- 定义:
- 反码规则:正数的反码等于原码,负数的反码等于除了符号位外其余二进制数码0变成1,1变成0。
- 补码
- 定义:
- 补码规则:正数的补码等于原码,负数的补码等于反码加1。
- 优点
- 补码表示的负数范围可以到2^n,常见的8位补码表示范围是:-128~127
- 补码表示的数据没有符号位。
- 补码中0值唯一。
-
- 十进制数串的表示方法
- BCD码形式:一个字节存放一个十进制的数位或符号位。
- 压缩BCD码形式:一个字节存放两个十进制的数位。
- 符号位:C 1100表示正
- 符号位:D 1101表示负
- 符号位放在末尾
- 定点加、减法运算
- 补码
-
加法:[x]补 + [y]补=[x+y]补
- 减法: [x]补- [y]补=[x]补 + [-y]补
- 其它公式:
- -[y]补 = [-y]补
- [y]补 取反 + 1 = [-y]补
- 溢出
-
定义:在定点数机器中,数的大小超出了定点数能表示的范围。
-
溢出判断
- 进位判别法:判断数据最高位的进位与符号位进位是否相同,相同不溢出,不同则溢出。
-
双符号位法:将符号位扩展为2位,具体说就是对于正数两个符号位是”00”,对于负数两个符号位是”11”,两个符号位都看作数码一样参加运算。两个数相加后,看符号位。
符号位 是否溢出 01 上溢出 10 下溢出 00或11 未溢出
-
-
- 十进制数串
- 补码
-
定点乘法
- 原码并行乘法
- 运算规则:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。
- 直接补码并行乘法
- 原码并行乘法
-
定点除法运算
- 原码除法原理:在顶点计算机中,两个原码表示的数相除的符号位由两数的符号位按异或运算的到,而商的数值部分则是两个正数相除之商。
- 恢复余数法
- 加减交替法
浮点运算
- 浮点表示
- 定义:对于任何一个二进制数用科学计数法表示数据的方式。
- 格式:
|M*2^e| |-| M:尾数,是一个顶点纯小数,决定数据的表示精度 e:指数,是一个顶点纯整数,决定数据的表示范围
- 特点
- 同一个浮点数的表示方法不是唯一的。
- IEEE754标准
-
32浮点数的标准格式:
|S|E|M| |-|-|-|
- 解释
- S位(1bit):是浮点数的符号位,0表示正数,1表示负数。
- E位(8bit):阶码,阶码是比实际数据的指数真值多127,如果浮点数的指数真值是e,则阶码E=e+127。
- M位(23bit):尾数,小数点在尾数域的最前面,为了尾数的表示精度提高一位,IEEE规格化浮点数规定小数点左边一位必须是1,即1.M,该位经常不予存储,所以M位存储的是有效数据的小数部分。
- 真值与浮点数的关系:x=(-1)^s*M*2^e=(-1)^s*(1.M)*2^(E-127)
- 注意
- 当阶码E为0且尾数M也全为0时,表示的真值为0,结合符号为S为0或1,有正零和负零之分。
- 当阶码为全1且尾数M为全0时,表示的真值X为无穷大,结合符号位S为0或1,就有正无穷大和负无穷大。
-
-
加减法运算
- 乘除法运算
其它数据的表示方法
-
字符表示方法
- 字符的表示:ASCII码:一个字节表示1个字符。
- 字符串的表示方法
- 指连续一串字符,它们在主存中占用连续多个字节,每个字节存一个字符的ACSII码。
- 汉字的表示方法
- 汉字的输入编码: 拼音码,字型码
- 汉字的存储编码:用两个字节表示一个汉字。
- 汉字的输出编码:点阵表示的字模码。