黑马程序员技术交流社区
标题:
关于将十进制转换为其它进制的问题
[打印本页]
作者:
为了心中的梦
时间:
2014-10-17 22:42
标题:
关于将十进制转换为其它进制的问题
如有不足 望指教 谢谢
//编程实现将任意的十进制整数转换成任意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;
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2