用C语言For循环实现二进制数11001001转十进制数的算法
时间: 2024-09-19 18:16:42 浏览: 112
lianzhan.rar_使用栈求
在C语言中,可以使用for循环结合位运算来将二进制数转换成十进制。二进制每位的值是2的幂次方,从右向左分别对应2^0、2^1、2^2...。下面是一个简单的示例算法:
```c
#include <stdio.h>
int binaryToDecimal(int binary) {
int decimal = 0;
int i = 0;
// For loop to iterate through each bit of the binary number
for (; binary != 0; binary >>= 1) {
// If the current bit is set (1), add its value to decimal
if (binary & 1)
decimal += pow(2, i); // 2的i次方
i++;
}
return decimal;
}
int main() {
int binary = 11001001;
int decimalResult = binaryToDecimal(binary);
printf("Binary %d in decimal is %d\n", binary, decimalResult);
return 0;
}
```
在这个函数中,`binary >>= 1` 表示右移一位并丢弃最低位,然后检查当前位是否为1(即 `binary & 1`),如果是,则加上对应的十进制权重(`pow(2, i)`)。循环会一直持续到二进制数变为0。
阅读全文