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] 展开
是这样,我从用户获取一个char[8],正好64个bit,存至bool[64]中去;反之,获取bool[64],然后转换存至char[8] 展开
3个回答
展开全部
可以用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数组里
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数组里
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的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);
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询