二进制 基本算术运算 的 实现

By | 2025-04-21

二进制 基本算术运算 的 实现

一,加法:
从右往左 11得0(异或门) 进位1(与门), 10得1(异或门), 01得1(异或门), 00得0(异或门)。
二,减法:
补码减法
计算机中常用补码(正数的补码与其原码相同,负数的补码=负数的反码(除符号位外,所有位取反)+1)处理负数减法,避免借位复杂性问题。
例如:
A - B 可转换为 A + (-B的补码),然后丢弃溢出位。
三,乘法:
从右往左 被乘数×1=被乘数(1×1=1 0×1=0),被乘数×0=全是0(1×0=0 0×0=0),每个结果 按位权重 相加。
四,除法:
1,比较:从被除数中取出足够位数(与除数位数相同),若大于或等于除数,则商写1;否则商写0,并取下一位。
2,相减:用被除数(或余数)减去除数(若商为1),得到新的余数。
3,重复:将下一位被除数位添加到余数后,继续上述过程,直到处理完所有位。
五,开方(以整数部分为例):
分组:从右向左每两位为一组(整数部分最左侧不足时补零)。
试商法:类似十进制开方,逐步确定每一位的商(0或1)。
迭代计算:用当前结果平方与余数比较,调整余数并继续下一位。

在计算机系统中,无论是加法、减法还是乘法和除法,补码都是处理有符号数的主要方式。

在×86及ARM 架构 处理器 以及 GPU 中,都已经包含 加减乘除开方 的 硬件指令。