c语言二进制的加减乘除
时间: 2023-08-23 10:09:07 浏览: 380
在C语言中,二进制的加减乘除运算可以通过位运算符来实现。以下是一些常用的位运算符:
1. 位与运算符(&):对应位上的两个数都是1,结果才为1。
2. 位或运算符(|):对应位上的两个数只要有一个是1,结果就为1。
3. 异或运算符(^):对应位上的两个数不相同,则结果为1,否则结果为0。
4. 取反运算符(~):对每个二进制位取反(0变成1,1变成0)。
以下是一些常见的二进制运算示例:
1. 二进制加法:
```c
int a = 0b1010; // 十进制数10
int b = 0b1101; // 十进制数13
int sum = a ^ b; // 不进位相加结果,0b0111(十进制数7)
int carry = (a & b) << 1; // 进位结果,0b1000(十进制数8)
int result = sum | carry; // 最终结果,0b1111(十进制数15)
```
2. 二进制减法:
```c
int a = 0b1101; // 十进制数13
int b = 0b1010; // 十进制数10
int diff = a ^ b; // 不借位相减结果,0b0111(十进制数7)
int borrow = ((~a) & b) << 1; // 借位结果,0b0100(十进制数4)
int result = diff | borrow; // 最终结果,0b1011(十进制数11)
```
3. 二进制乘法:
```c
int a = 0b1010; // 十进制数10
int b = 0b1101; // 十进制数13
int result = 0;
while (b != 0) {
if (b & 1) {
result += a;
}
a <<= 1;
b >>= 1;
}
```
4. 二进制除法:
```c
int a = 0b1101; // 十进制数13
int b = 0b101; // 十进制数5
int quotient = 0;
int remainder = 0;
for (int i = 31; i >= 0; i--) {
remainder <<= 1;
remainder |= (a >> i) & 1;
if (remainder >= b) {
remainder -= b;
quotient |= 1 << i;
}
}
```
以上是一些常见的二进制运算示例,需要注意的是,在进行二进制运算时,需要使用二进制数表示,并且在C语言中,整数默认是有符号的,因此需要注意符号位的处理。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![c](https://img-home.csdnimg.cn/images/20250102104920.png)