永发信息网

c语言中如何将一个unsigned char变成以二进制表示的字符串?比如将‘A’变成"01000001"。

答案:4  悬赏:60  手机版
解决时间 2021-03-06 20:11
有c语言代码吗?
最佳答案
现将字符 A 转成整形即它的 ascii码 65 然后将十进制的 65 转成 二进制的 01000001

#include<stdio.h>
void main()
{
unsigned char ch;
printf("please enter a char:");
scanf("%c",&ch);
int ch1=ch;
int ch3[8];
int i=0;
while(ch1!=0)
{
int ch2=ch1%2;
ch3[i]=ch2;
i++;
ch1=ch1/2;
}
if(i<8)
{
for(int k=i;k<8;k++)
{
ch3[k]=0;
}
}
for(int j=7;j>=0;j--)
{
printf("%d",ch3[j]);
}
printf("\n");
}
全部回答
可以使用强制类型转换,示例代码如下: char buf[]="abc"; int tmp = *(int*)buf; printf("%s",(char*)&tmp);//输出看看字符串有没有丢失或错误 但是这样转换有一个限制,就是只能对不超过4个字节的字符串进行转换 因为int类型默认都是4个字节,只能放入4个字符 如果需要大批量的转换,则需要用memcpy,示例代码如下: char buf[]="abc123"; int tmp[2];//6个字符串需要2个int来保存 memcpy(tmp,buf,strlen(buf)+1); printf("%s",(char*)tmp);//输出看看字符串有没有丢失或错误 但是这样并没有什么优势,字节在内存中占用的大小并没有变化
(char)(((num>> i)&1)+'0'); 这一句取出num的第i位(i=0,1...),lz写个循环把所有位打出来就可以了
用除2取余法 用A的字符那个数值(我忘了是多少,太久没碰了) 用0来举例吧,0是48 unsigned char a = '0'. int b[100],i=0,j. where(a/2 != 0) { b[i] = a%2. a = a/2. i++. } i++. b[i] = a%2. for (j = i; j>0; j--) { println("%d",b[j]). }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有关英雄王的资料
那嘴食尚面坊地址在哪,我要去那里办事
微米的英文缩写怎么写?
60个佛教小故事有哪些?
下列有关葡萄酒消费税征收管理的说法,不正确
香老蟹在什么地方啊,我要过去处理事情
为什么后置摄像头比前置摄像头像素低
dnf史诗套装怎么凑齐 dnf史诗套装凑齐小技巧
15×56 56 84×56怎么作简便
云南文山有没有服装批发市场
东环路/平安街(路口)地址在什么地方,想过去
为什么我见了我男朋友说不出话,也不知道说什
使用影子系统疑问,只对C盘开影子模式,我的
天和人家(石峰店)地址在哪,我要去那里办事
成品油运输的利润率一般是多少?急急急
推荐资讯
超时空通道通哪个地方
请问我的0P手机掉水里了,我马上捞了出来,然
考人力资源管理师一定要报班学习吗
勇于负责的名言警句多说几句,或者诗词也行还
【栩栩如生的什么】栩栩如生的什么填空
琦的拼音是什么
大王卡qq免流量在哪里
坦尾南三巷/桥中南路(路口)地址在什么地方,
(2a十b十c)(2a一b一c)
长安M80与华晨金杯海狮哪个好点
电动车装大一号轮胎可以吗?会不会烧电机?
求lol混伤打野剑圣,和一套劫出装
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?