C++中将char类型转换成bool数组,还有如何将bool数组压缩成char类型

RT,求解!采纳答案再加20分是这样,我从用户获取一个char[8],正好64个bit,存至bool[64]中去;反之,获取bool[64],然后转换存至char[8]... RT,求解!采纳答案再加20分
是这样,我从用户获取一个char[8],正好64个bit,存至bool[64]中去;反之,获取bool[64],然后转换存至char[8]
展开
 我来答
百度网友96ffcf7
推荐于2018-03-29 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118717
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
  首先,bool和char都是8bit的,而int是32bit的。所以,bool和char应该是随便转的。
  bool一般都是一个字节。没有一个bit的。如果想把一个十进制转成二进制,可以用itoa转itoa( 4, buffer, 2);
  如果是要显示内存里的内容,自己写个循环就行了。
jaybestwang
2011-11-14 · TA获得超过4106个赞
知道小有建树答主
回答量:940
采纳率:0%
帮助的人:694万
展开全部
可以用stl里的bitset解决
char arr[8]; //从用户获取的char数组
bitset<64> result;
for(int i=7; i>=0; i--){
bitset<8> tmp(arr[7-i]); //将原char数组中每一位映射到bitset中8位二进制码
for(int j=0; j<8; j++)
if(tmp[j] == 1)
result.set(i*8 + j);
}
假如开始char arr[8] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};
那最后result就是‘’0110000101100010011000110110010001100101011001100110011101101000“每八位对应于一个char型;
反过来每八位bitset转换为一个char,存进char数组里
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友482b105da
2011-11-14 · TA获得超过202个赞
知道小有建树答主
回答量:227
采纳率:0%
帮助的人:109万
展开全部
你说的char转换成bool是什么意思,是指每bit代表一个bool吗
追问
你好,我更新了问题
追答
unsigned char bit_set[8];
bool bool_arr[64];

// char -> bool
for (int i = 0; i char
for (int i = 0; i < 8; i ++)
{
bit_set[i] = 0;
for (int j = 0; j < 8; j ++)
{
if (bool_arr[i*8+j])
{
bit_set[i] |= (1 << j);
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式