如何编写一个C语言程序,对24位输入进行64进制编码?

如何编写一个C语言程序,对24位输入进行64进制编码?,第1张

只要将下面程序中的权16改成24就可以了。

不过你得定义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进制数,读和用,都很方便。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8150755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存