不过你得定义64进制中各个字符(64个)
#include "stdio.h"
#include "string.h"
long DEC( char *HEX )
int Ture( char *HEX )
void main( void )
{
char HEX[30]
int ture
clrscr()
do
{
printf("\nPlease input a HEX number blow : \n")
gets( HEX )
if( ture=Ture(HEX) )
printf("\nWrong ! Try Again !")
}while( ture )
printf("\nThe Result is :")
printf(" HEX (%s) = DEC (%ld) ",HEX,DEC(HEX))
}
long DEC( char *HEX )
{
long decvalue=0
int i=0
for( i=0 i<strlen(HEX) i++)
{
if(*(HEX+i)>='A'&&*(HEX+i)<='F')
{
decvalue*=16
decvalue+=*(HEX+i)-'A'+10
}
if(*(HEX+i)>='0'&&*(HEX+i)<='9')
{
decvalue*=16
decvalue+=*(HEX+i)-'0'
}
}
return decvalue
}
int Ture( char *HEX )
{
int i
int flag=0
for( i=0 i<strlen(HEX) i++ )
{
if((*(HEX+i)>='a')&&(*(HEX+i)<='f'))
{
*(HEX+i)+='A'-'a'
flag++
}
else if((*(HEX+i)>='A')&&(*(HEX+i)<='F'))
{
flag++
}
else if((*(HEX+i)>='0')&&(*(HEX+i)<='9'))
{
flag++
}
else
{
flag--
}
}
return(strlen(HEX)-flag)
}
我想这位仁兄混淆了两个概念:进制和位。我们常说32位,64位或者128位,指的是二进制数有多少列。32位机器,一次最大可以处理32bit的数据。这个当然是越大越好。
而进制没有好坏之说。只有适合与不适合。比如我们从秒进到分,是60进制,从分到时,也是60进制,而从时到日,是24进制。这些都是实际的需要而已。
计算机本身只能识别二进制。但实际使用中,八进制和16进制用起来更方便。因为刚好三位二进制数可以转为一位八进制数,四位二进制数可以转为一位16进制数。
尤其是16进制数,读和用,都很方便。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)