计算机原码的加减乘除运算如下:
加法
符号位相同,则直接相加数值位,结果符号位不变。
符号位不同,则将数值位相加,符号位取数值位大的数的符号位。
例如:
[X]原 = 00010
[Y]原 = 01010
X + Y = 01100
减法
将减数的符号位取反,然后与被减数相加。
例如:
[X]原 = 10010
[Y]原 = 01010
X - Y = 10010 + 11010 = 11100
乘法
原码一位乘法是模拟竖式手算的方法。
符号位是被乘数和乘数符号位的异或值。
检视乘数从低向高的每一位,若为1,部分积加上被乘数并右移一位;若为0,部分积加0并右移一位。
例如:
[X]原 = 11101
[Y]原 = 01011
X * Y = 110001111
除法
除法可以转化为乘法,通过将被除数减去除数的补码来实现。
符号位为被除数和除数符号位异或获得。
之后被除数减去除数(补码表示),当余数为正时,商为1,余数左移一位减除数;当余数为负时,商为0,余数左移一位,加除数。
例如:
[X]原 = 0.1001
[Y]补 = 0.1011
X / Y:
余数 r0 < 0,商0,余数 r0 和商0左移一位加 y
余数 r1 > 0,商1,余数 r1 和商1左移一位减 y
余数 r2 > 0,商1,余数 r2 和商1左移一位减 y
余数 r3 < 0,商0,余数 r3 和商0左移一位加 y
最终商 [Q]原 = 0.1101,余数 [R]原 = 0.0001
这些规则适用于整数和小数的原码运算。需要注意的是,原码的加减乘除运算相对复杂,特别是涉及到符号位的处理,因此在实际应用中通常使用补码来简化计算过程。