c题目求解
本帖最后由 19112915084 于 2022-6-21 11:10 编辑进制转换
【任务描述】
将输入的任意进制正整数,转换成制定的进制数,并输出结果。
【功能要求】
设计并实现一个可进行交互操作的菜单,实现二进制、八进制、十六进制、十进制之间的相互转换,并输出转换结果 输入的任意进制正整数
除了十进制外,哪来的整数 如果涉及高精度可就难了 jhq999 发表于 2022-6-20 17:56
如果涉及高精度可就难了
用不到应该 wp231957 发表于 2022-6-20 15:22
输入的任意进制正整数
除了十进制外,哪来的整数
确实有问题, 本帖最后由 jhq999 于 2022-6-20 18:57 编辑
//16-》10 10进制int,
int num=0;
for(i=0;cl;i++)
{
num<<=4;
num|=fun(ch);//////int fun(char ch);///把16位字符转化成数值;比如‘A ’转换成10;
}
//10-》16 10进制int
num=输入参数
for(i=0;num;num>>=4,i++)
{
ch=fun(num&0xf);///char fun(int num);///把数值转化成字符;比如10转换成'A';
}
for(j=0;j<i/2;j++)//////倒过来
{
char tmp=ch;
ch=ch;
ch=tmp;
}
ch=''\0';
//2-》10 10进制int,
int num=0;
for(i=0;cl;i++)
{
num<<=1;
num|=ch-'0';
}
//10-》2 10进制int
num=输入参数
for(i=0;num;num>>=1,i++)
{
ch=num&1+'0';
}
for(j=0;j<i/2;j++)//////倒过来
{
char tmp=ch;
ch=ch;
ch=tmp;
}
ch=''\0';
//8-》10 10进制int,
int num=0;
val=输入参数
for(i=0;val;i++,val/=10)
{
num<<=3;
num|=val%10;
}
//10-》8 10进制int 不超过37777777777
val=输入参数
char num={0};
for(i=0;val>>i*3;i++)
{
num=val&0x7;
}
val=0;
for(i=9;i>=0;i--)val=val*10+num;
剩下的可以先转成10进制再转成其他进制 要得,谢谢谢谢,我看一下
页:
[1]