99问答网
所有问题
怎么用C语言实现将二进制字符串变换为16进制数?比如将“00010001”怎么转变为“0x11”?谢谢!
如题所述
举报该问题
推荐答案 2011-05-09
将你要转化的数值例如00010001从右开始数,4位数一次,每4位转化成16进制的字符就可以了.
4为转16进制可以使用穷举法,0001=1,0010=2,.....1001=9,1010=A,....,1111=F
总共写16个就OK了!
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/v7eeOezBW.html
其他回答
第1个回答 2017-11-06
先转成10进制,,,,,,再转16进制,可以 用sprintf
~~~~~~
~~~~~~
~~~~~~~~~~~
第2个回答 2011-05-09
#include <stdio.h>
#include <math.h>
#include <string.h>
int main(void)
{
char szBuff[65] = {0};
int i, j = 0;
int len = 0;
int sum = 0;
printf("输入
字符串
:");
gets(szBuff);
printf("%s=0X", szBuff);
len = strlen(szBuff);
for (i = len-1; i >= 0; --i)
{
if (szBuff[i] == '1')
{
sum += ldexp(1, j);
}
else if (szBuff[i] != '1' && szBuff[i] != '0')
{
printf("输入错误!\n");
return 1;
}
++j;
j %= 4;
if (j == 0)
{
printf("%01x", sum);
sum = 0;
}
}
printf("\n");
return 0;
}本回答被提问者采纳
相似回答
大家正在搜
相关问题
C语言如何把11位16进制字符串转成16进制数?
C语言将二进制数N转换成16进制的程序
C语言中如何将某个字符串转为16进制ascii码并输入到另一...
c语言怎么把16进制转化为二进制
如何给一个C语言字符串转16进制数的函数?
C语言:怎么将十六进制字符串转换成二进制字符串,谁帮我写个函...
c语言怎么把字符串0x123转换成16进制的0x123
C++怎么吧十六进制字符串转为相应的二进制字符串,比如“FF...