永发信息网

c++字节操作,按位操作问题

答案:3  悬赏:70  手机版
解决时间 2021-02-15 09:25
比如我现在有一串字符:char[8]="01101100",同时又有一个byte变量(其实就是unsigned char),我怎么按位操作吧这个八个字符一个个写进去呢?
THANKYOU!我还想问问byte a=0xC的话怎么按位读取成字符串呢?我想到的方法是一位位地比较同时写字符串。不知有没有更好的办法?本人新手哈^^
最佳答案
#include<iostream.h>

int main()
{
char ch[9]={"01101100"};
byte data = 0;
for (int i=0;i<9;i++)
{
if (ch[i]=='1')
{
data|=(1<<(7-i));
}
}
cout<<(int)data<<endl;
return 0;
}

补充的问题:只要反过来就可以了

int main()
{
char ch[9];
byte data = 0xc;
for (int i=0;i<9;i++)
{
if (data&(1<<(8-i)))
{
ch[i] = '1';
}
else
ch[i]='0';
}
ch[i]='\0';
cout<<ch<<endl;
return 0;
}

主要就是进行移位操作和位或运算~~如果还有什么不明白的话,可以继续追问~~
全部回答
byte a; char b[8]="01101100"; a=0; for(i=0;i<8;i++) { a=a<<1; if (b[i]=='1') { a |=1; } }
用标准库的bitset类型可以按位处理。 #include using std::bitset; bitset b1; // b1有n位,每位都为0 bitset b2(u); // b2是unsigned long型u的一个副本 bitset b3(s); // b3是string对象s中含有的位串的副本 bitset b4(s, pos, n);// b4是s中从位置pos开始的n个位的副本 可以用bitset<8> 来进行存取。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
美扬玉器在哪里啊,我有事要去这个地方
PDF文件怎么控制在15k以内
我的存款应该怎样投资理财产品
快奕轩棋社地址好找么,我有些事要过去
水是生命之源,生命活动离不开水。水在生物体
天天自选地址有知道的么?有点事想过去
朋友们,觉得做冒烟冰淇凌怎么样
好运棋牌地址有知道的么?有点事想过去
万通新世界地址在什么地方,想过去办事
丝光掠鸟放飞了能回来吗,他的同伴死了好几个
大满贯地址在哪,我要去那里办事
请问,房子三个门住着半个人。[物],
枸橼酸溶液
蝴蝶屋我想知道这个在什么地方
【步辇图的作者】《蔡文姬》的作者还写过什么
推荐资讯
王者荣耀新宫本武藏什么时候出 宫本武藏重做
聚享客是什么啊?大家觉得怎么样?
五稻香中华料理(桂林中山店)在哪里啊,我有事
24.6×12-4.6×12简便计算
一个女人老是看不起自己的男人还能继续生活不
金源花园二期12栋每平方米卖多少
小雨轩专业摄影地址有知道的么?有点事想过去
福建省广播电视大学地址好找么,我有些事要过
壹加壹形象设计地址在哪,我要去那里办事
怎么查信用卡的归属地
缘聚饭庄地址有知道的么?有点事想过去
下列是某同学进行的“光对鼠妇分布的影响”探
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?