77问答网
所有问题
怎么用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://77.wendadaohang.com/zd/Y3WWpW8IG.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语言
中的取反是什么意思啊?
答:
我感觉是这么回事,
0x11二进制
是表示是
00010001
,~之后是11101110,转化
为十六进制
后0xEE,这是在TC中整形2个字节,而在VC中整形是4个字节,所以 0x11转化为二进制时前面应该在补八个零,即0000000000010001~后为1111111111101110转为为十六进制后就为0xFFEE了。
c语言
问题
答:
11前的0x表示其后是一个
十六进制数
,所以其值相当于十进制数的17。因为要按位取反,所以要先把17转换成
二进制
数,得:
00010001
综合起来:~
0x11
的二进制表示为:11101110 这个数如果以无符号数形式输出是 238 如果以有符号数形式输出是 -18 ...
step7定时器bcd码
怎么
算
答:
1、
十六进制数
:3D2转换成十进制是978,BCD码是:100101111000。在计算机中,数据是以0和1的
二进制
方式来表示的。一个8位的二进制数,就表示为
00010001
,由于二进制数用起来比较不方便,通常以16进制的方式来表达,比如上述的00010001的16进制表示
为0x11
。2、16进制的0x11,如果用十进制来表示的话,...
十进制数和
十六进制数怎么
转换?
答:
16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
十六进制数
的第0位的权值
为16
的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……所以,在第N(N从0开始)位上,如果是是数 X (...
c语言
变量 移位运算 数值
答:
首先移位运算符的优先级是大于赋值运算符的 b=
0x
0011是
十六进制数
他的十进制数为1*16+1*1=17
二进制
数
为00010001
向右移动4位则为左补0 为00000001 十进制为1.所以a=1 b=17 另外二进制数的左移结果就是十进制数 每相对移动1位乘以2 反之右移除以2.(小数要取整数)比如17=00010001 右移4...
怎么
将
十六进制
转化为BCD码
答:
1、首先打开电脑自带的计算器,点击三根横线。2、在菜单中点击选择程序员。3、进入程序员计算器,点击bin。4、输入你要转换的bin码,以110111111001为例,得到一个
十六进制数字
3577。5、百度首页搜索BCD8421码在线转换工具,点击工具进入。6、进入工具,点击选择转BCD。7、输入3577,点击计算按钮,就可以...
C语言
:编写一函数,求某正整数的
二进制
形式
答:
例如:3可以表示为0011=2^2+1,同样17=
00010001
。过程如下:用一个数组,存储2的各位次方。如a[]={0,2,4,8,16,32,64,128,256} 现在求18的
二进制
代码 18和32比较 小 所以最高位为0 和64比 小 第二位为0 和32比 小 第三位为0 和16比 大 四位为1 然后用 18-16=2 2和8比...
大家正在搜
用c语言将十进制转为二进制
c语言实现十进制转二进制
C语言怎么输出二进制
字符串转二进制
截断字符串或二进制数据
二进制转换八进制
二进制c语言怎么表示
C语言二进制数问题
C语言进制转换
相关问题
C语言如何把11位16进制字符串转成16进制数?
C语言将二进制数N转换成16进制的程序
C语言中如何将某个字符串转为16进制ascii码并输入到另一...
c语言怎么把16进制转化为二进制
如何给一个C语言字符串转16进制数的函数?
C语言:怎么将十六进制字符串转换成二进制字符串,谁帮我写个函...
c语言怎么把字符串0x123转换成16进制的0x123
C++怎么吧十六进制字符串转为相应的二进制字符串,比如“FF...