#include <stdio.h>
#include <string.h>
#include <math.h>
int s10z16()
{
int x;
printf("请输入10进制数,转为 16 进制: ");
scanf("%d", &x);
char arr[100] = { 0 }; //因为十六进制中会出现A\B\C\D\E\F等字符,所以保存余数的数组类型应定义为char
int i = 0, j = 0;
while (x)
{
arr[i++] = x % 16;
x /= 16;
}
for (j = 0; j < i; j++)
{
//将取出的余数转换为对应的字符
switch (arr[j])
{
case 10:arr[j] = 'A'; break;
case 11:arr[j] = 'B'; break;
case 12:arr[j] = 'C'; break;
case 13:arr[j] = 'D'; break;
case 14:arr[j] = 'E'; break;
case 15:arr[j] = 'F'; break;
default:arr[j] += 48;
}
}
for (j = i - 1; j >= 0; j--)
{
printf("%c", arr[j]);//逆序打印
}
printf("\n");
return 0;
}
void s16z10()
{
int a=0;
int i=0;
printf("请输入16进制数: ");
scanf("%x",&a);
printf("%d",a);
}
void s10z2()
{
int num;int temp;int i=0;
int arr[999];
printf("请输入一个十进制数:");
scanf("%d", &num);
do
{
temp=num%2;
num=num/2;
arr[i++]=temp;
}
while (num!=0);
for (int j = i-1; j>=0; j--)
printf("%d",arr[j]);
printf("\n");
}
int main()
{
int grade;
printf("请选择需要被转换的进制类型 1. 10转2进制; 2. 16转10进制; 3. 10转2进制 : ");
scanf("%d", &grade);
printf("当前输入的值为: %d \n",grade);
/* 局部变量定义 */
switch(grade)
{
case 1 :
printf("当前是十转十六进制\n" );
s10z16();
break;
case 2 :
printf("十六转十进制\n" );
s16z10();
break;
case 3 :
printf("十转二进制\n" );
s10z2();
break;
default :
printf("输入错误,请重新输入...\n" );
}
return 0;
}Powered by ddoss.cn 12.0
©2015 - 2025 ddoss
渝公网安备50011302222260号
渝ICP备2024035333号
【实验平台安全承诺书】
小绿叶技术社区,优化网络中,点击查看配置信息
主机监控系统: 安全防火墙已开启检查cc攻击-下载文件完成后等待10s 恢复访问,检查连接数低于峰值恢复访问
您的IP:216.73.216.110,2025-12-01 15:25:28,Processed in 0.01231 second(s).