C++ 语言:char 转换成 bit

来源:互联网 发布:网络摄像机软件下载 编辑:程序博客网 时间:2024/06/08 03:35
    bitset<64> charToBitset(const char s[8])    {        bitset<64> bits;        for(int i=0; i<8; ++i)            for(int j=0; j<8; ++j)                bits[i*8+j] = ((s[i]>>j) & 1);        return bits;    }

逐行解释:
char s[8],数组有8个char,每个char有8bits.

bitset<64> bits,数组bits存0/1代码,也有64bits

两个for循环,第一个for循环控制s的8个char.第二个for循环相当于将bits数组分成8段,每一段8bit,每一段存一个cha类型.

((s[i]>>j) & 1)最关键的一步,char类型每次右移一位,& 1之后取出最后一位存入bits,这里注意1的二进制为00000001

希望大家评论出不一样的解决方案,>>这个代码在好多地方看到,最后才想要理解。但我觉得肯定还有别的方案。对了,bitset是c++一个模板。

原创粉丝点击