有一个 16 位的整数,每 4 位为一个数,写函数求他们的和。比如: 整数 1101010110110111(十进制为 54711),和 1101+0101+1011+0111(十进制 为 36)用c语言携带买
时间: 2024-05-12 11:17:08 浏览: 31
MATLAB中将二进制有符号定点数转化为十进制数的函数
C语言代码如下:
```c
#include <stdio.h>
int main()
{
unsigned int num = 0b1101010110110111; // 十六进制表示为 0xD5B7
unsigned int mask = 0b1111; // 定义掩码为 0b1111
unsigned int sum = 0;
int i;
for(i=0;i<4;i++) // 循环 4 次,每次处理 4 位
{
unsigned int part = num & mask; // 通过与掩码做位与运算,得到当前 4 位数
sum += part; // 将当前 4 位数加到总和中
num >>= 4; // 将整数右移 4 位,以便取出下一组 4 位数
}
printf("The sum is %d\n", sum); // 输出总和
return 0;
}
```
输出为:
```
The sum is 36
```
阅读全文