一、C程序中涉及的运算
1.按位运算
符号|按位OR运算;符号&按位AND运算;符号~表示按位NOT运算;符号^按位XOR运算。
掩码操作:通过与给定的一个位模式进行按位与,可以提取所需要的位,可以对这些位进行“置1” “清0” “1测试” 或"0测试"等。
2.逻辑运算
符号||按位OR运算;符号&&表示AND运算;符号!表示NOT运算。
逻辑运算是非数值计算其操作数只有两个逻辑值:True 和False通常用非0数表示逻辑值True,用全0数表示逻辑值False。
3.移位运算
逻辑移位:不考虑符号位,把高(低)位移出,低(高)补0.
算术移位:机器码采用有符号数,符号位不参与移位。
原码左移、右移都补0,原码算术移位:左移丢1,运算出错,右移丢1,影响精度。
二、基本运算部件 加法器、ALU(核心部件是加法器)和移位器
串行进位加法器
全加器:用来实现两个本位数加上低位生成一位本位以及一位向高位的进位
加法器执行位串行行操作,利用多个时钟周期完成一次加法运算,即输入操作数和输出结果方式为随时钟串行输入/输出
并行进位加法器
用n位全加器实现两个n位操作数各位同时相加,这种加法器称为并行加法器
并行加法器中全加器的个数与操作数的位数相同
带标志加法器
n位无符号数加法器只能用于两个n位二进制数相加,不能进行无符号整数的减运算,也不能进行带符号整数的加/减法
算术逻辑部件
ALU是一种能进行多种算术运算和逻辑运算的组合逻辑电路,其核心部件是带标志加法器,多采用先行进位方式
三、定点数乘法运算
1.定点数一位乘法
2.定点原码二位乘法
3,移码加减运算
移码的和、差等于和、差的补码。
4,原码乘法运算