请用其它C语言运算符实现整数除法和摸运算
时间: 2024-02-24 10:55:30 浏览: 145
C语言中整数除法取商和取余运算的实现.pdf
5星 · 资源好评率100%
除了常规的除法和模运算符,还可以使用位运算符来实现整数除法和模运算,具体思路如下:
- 整数除法:将被除数向右移位,每次移位相当于除以2,然后再计算商,直到被除数小于除数为止。
- 整数模运算:将被除数向右移位,每次移位相当于除以2,然后再计算余数,直到被除数小于除数为止。
具体实现如下:
```c
int a = 10, b = 3;
int c = 0, d = 0;
int i;
for (i = 31; i >= 0; i--) {
c <<= 1; // 左移一位相当于乘以2
d <<= 1; // 左移一位相当于乘以2
if (a & (1 << i)) c++; // 判断a的二进制位上是否有1
if (c >= b) {
c -= b;
d++;
}
}
```
其中,a & (1 << i) 表示将1左移i位,然后和a按位与,相当于判断a的二进制位上是否有1,c和d分别表示商和余数。
阅读全文