当前位置: 代码迷 >> C语言 >> 十进制转八进制,十六进制,二进制的问题!
  详细解决方案

十进制转八进制,十六进制,二进制的问题!

热度:774   发布时间:2007-10-23 16:36:14.0
十进制转八进制,十六进制,二进制的问题!

十进制转八进制,十六进制,二进制............

#include<stdio.h>
#include<ctype.h>
#include<conio.h>
void main()
{
char ch;
int Array[100],i=0,k,ten;
do
{
printf("输入十进制数字:");
scanf("%d",&ten);
printf("\n");
if(ten>=0)
{
printf("转换为八进制=%o\n转换为十六进制=%x\n",ten,ten);
}
while(ten>=1)
{
Array[i++]=ten%2;
ten/=2;
}
printf("转换为二进制=");
for(k=i-1;k>=0;k--)
{
printf("%d",Array[k]);
}
printf("\n");
printf("是否继续(Y/n):");
ch=tolower(getche());
printf("\n");
}while(ch=='y');
}


二进制第一次循环正确,可两次就出现问题.....高手帮忙改改

搜索更多相关的解决方案: 八进制  二进制  十六进制  ten  十进制  

----------------解决方案--------------------------------------------------------
````
----------------解决方案--------------------------------------------------------
第一次正确,但第二次不正确,程序还是一样的执行,说明你有些变量的初值没有还原保留了上次的值,自己改一下吧.
----------------解决方案--------------------------------------------------------

变量i


----------------解决方案--------------------------------------------------------

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
int number = 12345;
char string[25];

itoa(number, string,2); /*2为你要转换的进制数*/
printf("integer = %d\nstring = %s\n", number, string);
system("pause");
return 0;
}


----------------解决方案--------------------------------------------------------
谢谢大家...
----------------解决方案--------------------------------------------------------

支持!!


----------------解决方案--------------------------------------------------------
看一下,支持下
----------------解决方案--------------------------------------------------------
用递归该怎么写?
----------------解决方案--------------------------------------------------------

递归我来写.

void Transform_m(long num,int m)//第一个参数是要处理的十进制数,第二个是进制
{
if(num==0)return ; //递归出口
Transform_m(num/m,m); //递归
if(num%m>9) //处理大于9的用字母'A'到 'F'输出
{
printf("%c",num%m-10+'A');
}
else //小于9的用数字字符输出.
{
printf("%c",num%m+'0');
}
}


----------------解决方案--------------------------------------------------------
  相关解决方案