当前位置:  开发笔记 > 编程语言 > 正文

将字节数组转换为Bitset

如何解决《将字节数组转换为Bitset》经验,为你挑选了1个好方法。

我有一个由随机数生成器生成的字节数组.我想把它放到STL bitset中.

不幸的是,看起来Bitset只支持以下构造函数:

    1和0的字符串,如"10101011"

    一个无符号长.(我的字节数组会更长)

我现在能想到的唯一解决方案是逐位读取字节数组并生成1和0的字符串.有没有人有更有效的解决方案?



1> strager..:

像这样的东西?(不确定模板魔法是否像我期望的那样在这里起作用.我在C++中生锈了.)

std::bitset bytesToBitset(byte *data)
{
    std::bitset b;

    for(int i = 0; i < numBytes; ++i)
    {
        byte cur = data[i];
        int offset = i * CHAR_BIT;

        for(int bit = 0; bit < CHAR_BIT; ++bit)
        {
            b[offset] = cur & 1;
            ++offset;   // Move to next bit in b
            cur >>= 1;  // Move to next bit in array
        }
    }

    return b;
}

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有