关于bitset中低阶位与高阶位的理解
2015-05-18 11:42
197 查看
C++ Primer中介绍bitset时有这么一句话:“(bitset<32> bitvec)以0位开始的位串是低阶位(low-order bit),以31位开始的位串是高阶位(high-order bit)。”
以下是摘自一位大神的理解:
以下是摘自一位大神的理解:
计算机里面的位串有两种排列顺序,即big endian和small endian,也就是你所说的高阶位和第阶位。 举一个例子,你可能就明白了。 比如说位串 0101,一共有4位,它的值的十进制是5。5 = 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0。从左到右,其阶依次为3, 2, 1, 0。 如果我们按从左到右的顺序把这4个bit放到bitset中(高阶放到了低位,低阶放到了高位),那就是 bitvec[0] = 0, bitvec[1]=1, bitvec[2]=0, bitvec[3]=1。很明显,bitvec[3]的阶位是0,最低,bitvec[0]的阶是3,最高。所谓以xx位开始的,也就是说xx位的阶是0。在我们这个例子中,bitvec[3]的阶是0,那就是一个big endian排序。 如果我们按从右到左的顺序把这5个bit放到bitset中(低阶放到了低位,高阶放到了高位),那就是bitvec[0]=1, bitvec[1]=0, bitvec[2]=1, bitvec[3]=0。 也就是说bitvec[0]是其最低阶, bitvec[3]是最高阶。很明显我们的0101串应该从bitvec[0]开始, 就是一个small endian的bit排序。
相关文章推荐
- 关于bitset中低阶位与高阶位的理解
- java关于多态的一些理解
- 关于peoperty animation的理解
- 关于端口(port)的一点理解
- 关于委托的理解1
- NHibernate中关于Inverse的理解和使用
- java笔记--关于多线程状态的理解和应用
- IOS-关于NSString的格式化的一点理解
- 关于采购中的PTA——概念如何理解及其计算公式
- 关于LVS-DR模式的理解
- 关于__proto__和prototype的理解
- 关于栈的理解(读书笔记)
- 关于C++指向指针的指针的一点测试与理解
- 关于LSA(Latent Semantic Analysis)主题模型的个人理解
- 关于ucos_ii 就绪表的理解
- 关于“java中静态内部类的设计意图”的理解
- 关于在C#中对类中的隐藏基类方法和重写方法的理解
- 关于数据库的各种码汇总理解
- 关于神经网络的一点理解
- 关于浮点数和IEEE754的理解