首页 > 编程知识 正文

c十进制转十六进制,c将字符串转换成数字

时间:2023-05-06 10:06:21 阅读:169800 作者:2833

在串行通信中,经常涉及十六进制的字符串发送,需要将字符串转换为十六进制。

example : stringstr=' 070 a 02100300000000000 ' # include stdio.h # include stdlib.h # include string.hint char 2bits (if }elseif(ch='a'ch='z ' ) { bits=ch - 'A' 10; }elseif(ch='0'ch='9' ) { bits=ch - '0); } else { bits=-1; } return bits; }inthex2bytes(constchar*hex,char *bytes,int size ) intlen=strlen ) hex ); intnbytes=(len1)/3; nbytes size (if ) { return -1; (} int n; for(n=0; n!=nbytes; n({intlndx=n*3; int rndx=lndx 1; intlbits=char2bits(HEX[lndx]; intRbits=char2bits(HEX[rndx]; if(lbits==-1||rbits==-1 ) { return -1; }bytes[n]=(lbits4)| rbits; } return nbytes; }intmain(intargc,char* const argv[] ) const char * hex=' 070 a 02100300000000 '; char stream[10]; intnbytes=hex2bytes(hex,stream,10 ); if(nbytes!=-1(intI=0; for (; i nbytes; I ) ) printf )、stream[i]; } } return 0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。