谁能帮我解决一下进制之间的转换问题?

来源:百度知道 编辑:UC知道 时间:2024/05/10 05:23:17
譬如说将8进制和16进制转换成十进制。将十进制转换成8和16进制。还有2进制和他们之间的转换。我正在学C语言,可是一遇到进制转换的问题我就卡住了,多谢了!!

进制转换的问题可以用以下算法, 以10转2为例:

#include<stdio.h>
void main()
{
int s, ne, temp, i;
s=5; //s为待转换数字
ne=0;
temp=1;
while(s>0)
{
i=s%2; //2是该进制计数法的基数, n进制的数把2改为n即可
ne=ne+i*temp; //ne是转换后的数
s=s/2;
temp=temp*10;
}
printf("%d", ne);
}

这个问题是不太好明白,你记住不管是什么进制,实际上存在内存中的都是一样的。比如16进制20,和10进制32,存在内存中都是00100000,关键是你怎么运用。可以用格式转化函数,sprintf,printf,都行