C语言十进制与二进制转换
时间: 2025-03-29 17:18:56 浏览: 26
### C语言实现十进制与二进制之间的转换
#### 十进制转二进制的方法
在C语言中,可以通过手动编写函数来完成十进制到二进制的转换。核心思路是利用模运算 `%` 获取当前数值除以2后的余数,并将其存储起来;随后通过整数除法 `/` 不断缩小原数值直到其变为零为止。最后按照逆序输出这些余数即可得到对应的二进制表示形式。
以下是基于上述逻辑的一个具体实现示例:
```c
#include <stdio.h>
void decToBin(int n) {
int temp = n;
int result[32];
int i = 0;
if (n == 0) { // 特殊情况处理
printf("0");
return;
}
while (temp != 0) { // 循环获取每一位上的值并存入数组result[]
result[i] = temp % 2;
temp /= 2;
i++;
}
for (int j = i - 1; j >= 0; j--) { // 倒序打印结果
printf("%d", result[j]);
}
}
int main() {
int number = 233; // 示例输入
printf("十进制数 %d 转换为二进制为: ", number);
decToBin(number); // 调用自定义函数进行转换
printf("\n");
return 0;
}
```
此程序展示了如何将给定的十进制正整数 `number` 转换成它的二进制表现形式[^1]。
#### 二进制字符串转十进制方法
对于从二进制字符串转化为十进制的情况,则可以采用累加的方式计算最终的结果。每读取一位字符时乘上相应的权重(即2的幂次),再相加以得出总的十进制数值。下面给出了一种可能的解决方案:
```c
#include <stdio.h>
#include <string.h>
// 将二进制字符串转换成十进制数
int binToDec(char *binaryStr){
int length=strlen(binaryStr)-1,decimalValue=0,powerOfTwo=1;
for(int index=length ;index>=0;--index ){
decimalValue += ((binaryStr[index]-'0')*powerOfTwo );
powerOfTwo *=2 ;
}
return decimalValue;
}
int main(){
char binaryString[]="11101001";
printf("The Decimal equivalent of Binary String '%s' is :%d\n",binaryString ,binToDec(binaryString));
return 0;
}
```
该例子说明了怎样把一个由‘0’和‘1’组成的字符串解析回原始的十进制数字[^3]。
阅读全文
相关推荐















