通过位运算实现四则运算

发布时间 2024-01-12 23:40:30作者: hirokoyo

1、加法运算过程

如果计算机会加法那么这个结果就是00001001,但是我们知道计算机只会位运算,按位加这种运算它也不会

其实按位加和一种位运算很接近,就是异或

如果不考虑进位的话,那么结果是一样的,再举个例子

0和1相加

因为0和1相加,或者0和1异或,他们结果是一样的,因为没有进位

所以计算加法过程是先异或,然后与(与用来判断是否有进位),如果为0那就是没有进位那么第一步异或的结果就是答案,如果有进位那么把第一步异或的值跟与之后再左移一位的值(因为有进位所以要左移一位)再进行异或和与。

第四步与完之后为0,那么答案就是第三步异或的结果0000 1001(十进制就是9)

2、减法计算过程

那么结果就是1111 1111(有符号的十进制就是-1)

3、乘法的运算过程

x*y=?

本质上就是加法,y个x相加,不就是个循环的事情吗

4、除法的运算过程

x/y=?

本质上就是减法,x能减去多少个y,能减去多少次那么结果就是多少