如何转换成十进制,八进制和十六进制?
麻烦会的帮忙下!~谢谢
----------------解决方案--------------------------------------------------------
辗转求余.
while(num)
{
int t=num%m;
if(t<10)data[k++]=t+'0';
else
data[k++]=t-10+'A';
num/=m;
}
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
int Num,Array[100],i=0,k;
printf("Enter a number:");
scanf("%d",&Num);
while(Num>=1) //当输入的数字大于等于1开始执行
{
Array[i++]=Num%8;
Num/=8;
}
printf("转换为八进制=");
for(k=i-1;k>=0;k--)
{
printf("%d",Array[k]);
}
printf("\n");
}
=================================================================================================
给你一个转8进制的实例,其它进制同理。。。
----------------解决方案--------------------------------------------------------
好算法:简捷,通用。。。。
----------------解决方案--------------------------------------------------------
/*十六进数转为十进制数*/
//返回16进制字符串s对应的整数值,遇到任何一个非法字符都返回-1。
int HexToDec(char *s)
{
char *p = s;
//空串返回0。
if(*p == '\0')
return 0;
//忽略开头的'0'字符
while(*p == '0')
p++;
int dec = 0;
char c;
//循环直到字符串结束。
while(c = *p++)
{
//dec乘16
dec <<= 4;
//数字字符。
if(c >= '0' && c <= '9')
{
dec += c - '0';
continue;
}
//小写abcdef。
if(c >= 'a' && c <= 'f')
{
dec += c - 'a' + 10;
continue;
}
//大写ABCDEF。
if(c >= 'A' && c <= 'F')
{
dec += c - 'A' + 10;
continue;
}
//没有从任何一个if语句中结束,说明遇到了非法字符。
return -1;
}
//正常结束循环,返回10进制整数值。
return dec;
}
[此贴子已经被作者于2007-10-16 17:06:25编辑过]
----------------解决方案--------------------------------------------------------
那不用程序算呢?
要自己算出来得怎么算?
----------------解决方案--------------------------------------------------------
那不用程序算呢?
要自己算出来得怎么算?
方法1:跟程序一样的方法,用辗转相除法计算
方法2:依次点击“开始->所有程序->附件->计算器->查看->科学型”
----------------解决方案--------------------------------------------------------
unsigned u=76768;
如何转换成十进制,八进制和十六进制?
麻烦会的帮忙下!~谢谢
不借助其他计算器.
凭自己算出来.
要如何转换?
----------------解决方案--------------------------------------------------------
除于进制数,得到的余数排起来(倒着排)就是了
----------------解决方案--------------------------------------------------------
谢谢楼上们的回答!
这个转换我会了
谢谢大家
----------------解决方案--------------------------------------------------------