VC++ 使用bit移位

分类: C/C++ 发布时间: 2017-09-23 15:09

通常很多协议中都会使用bit位来表示某个开关开启或者关闭,C++中使用bitset对每一位进行操作.

1.首先添加头文件

#include <bitset>
using std::bitset;

添加好头文件之后就可以直接在代码中使用bitset方法了。

2.bitset定义和初始化

bitset<n> bitvalue; //初始化长度为n的bitset数组,每位均为0

bitset<n> bitvalue(u);//bitvalue是unsigned long 型ud的一个副本

bitset<n> bitvalue(s); //bitvalue是string对象s中含有位串的副本

bitset<n> bitvalue( s, pos, n);//bitvalue是s中从位置pos开始的n个位 的副本

3.bitset的简单例子

3.1:自己设置bit位

string strvalue=”00000000000000000000000000001100″;//设置第三位和第四位为1,其他为0

bitset<32> bitvalue(strvalue);//bitset[2]=1, bitset[3]=1

unsigned int ivalue = bitvalue.to_ulong(); //转化成十进制数

3.2 解析其他人回传过来的bit位

string strvalue = “12”;

bitset<16> bitsetvalue(strvalue );

for( int i=0; i<bitset; i++ )//循环便利其中每一位的值

{

int value = bitsetvalue[i];

}

string bittypestr = bitsetvalue.to_string(); //转化成为0000000000001100的字符格式

 

 


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!