如有不足 望指教 谢谢
//编程实现将任意的十进制整数转换成任意R进制数(R在2-16之间)。(C语言)
///////////////////////////////////////////////////////////////////
//转化为二进制
void zhuanHuaTwo(int num)
{
int sum=0;
sum=sizeof(num)*8;
//通过把右移把十进制转化为二进制
int k;
for(int i=0;i<sum;i++)
{
k=num>>(sum-i-1)&1;
if(i!=0&&i%8==0)
{
printf(" ");
}
printf("%d",k);
}
}
//Czqiang
///////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
//转化为八进制
void zhuanHuaEight(int num)
{
printf("转化后的二进制为%o\n",num);
}
//Czqiang
///////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
//转化为十六进制
void zhuanHuaSixteen(int num)
{
printf("%x\n",num);
}
//Czqiang
///////////////////////////////////////////////////////////////////
#include <stdio.h>
int main(int argc, const char * argv[])
{
char ch;
int i=0;
printf("请选择你要转化哪种进制:a表示转化为二进制 b表示转化为八进制 c表示转化为十六进制\n");
scanf("%c",&ch);
printf("\n");
printf("请输入你要转化的数字\n");
scanf("%d",&i);
switch(ch)
{
case 'a': zhuanHuaTwo(i);break;
case 'b': zhuanHuaEight(i);break;
case 'c': zhuanHuaSixteen(i);break;
default:printf("能力有限,有待研究");break;
}
} |
|