对初学者来说进制之间的转化很多时候因为长度不超过int\long类型的长度很多时候都都是数据对10取余取出最后一位后进行累乘累加后进行,但是对于工程来说long long的长度也相差甚远,这时候就需要用char类型的数组以字符串的形式进行输入,在处理字符类型的数据时要用#include <string.h>的头文件,或者将单字符数据转化为整形 b=a-'0';。
二进制转化十进制
#include <stdio.h>
#include <string.h>
void main()
{
char binary[100];//储存二进制数
int decimal = 0;
scanf("%s", binary);//输入二进制字符
int len = strlen(binary);
//从左到右遍历二进制数
for (int i = 0; i < len; i++)
{
if (binary[i] == '1')
{
decimal += 1 << (len - 1 - i);
}
}
printf("%d", decimal);
}
八进制转化为十进制
#include <stdio.h>
int main() {
char octal[100];
int decimal = 0, base = 1, i = 0;
printf("请输入8进制数: ");
scanf("%s", octal);
// 计算8进制数的长度
while (octal[i] != '\0') {
i++;
}
// 从右到左遍历8进制数,计算十进制值
for (int j = i - 1; j >= 0; j--) {
decimal += (octal[j] - '0') * base;
base *= 8;
}
printf("转换后的十进制数为: %d", decimal);
return 0;
}
十六进制转化十进制
#include <stdio.h>
#include <stdlib.h>
int main() {
char hex[100];
long decimal;
printf("十六进制数为: ");
scanf("%s", hex);
decimal = strtol(hex, NULL, 16);
printf("十进制数为 %ld\n", decimal);
return 0;
}
C语言实现进制转换:二、八、十六进制转十进制
该文章提供了三个C语言程序,分别用于将二进制、八进制和十六进制数转换为十进制。程序使用字符串处理和位运算,适用于初学者学习不同进制间的转换方法。
1372

被折叠的 条评论
为什么被折叠?



