bitset用法 —— 修改一个字节的任意bit位

无意见需要用到这样一个函数,便整理了一下,当然,方法有很多种,如果有更好的,欢迎拍砖!

 

// // Bit.cpp : bitset用法 —— 修改一个字节的任意bit位 // 2010-09-05 by Koma #include "stdafx.h" #include <afx.h> #include <bitset> #include <iostream> using namespace std; /************************************************************************ 函数作用: 更改一个字节的bit值 参数说明: szTemp 原字节内容 nPos 位置,只能是0-7 (从右往左) nValue 位值,只能是0/1 返 回 值: 无 备注信息: 2010-09-05 by Koma ************************************************************************/ void SetBitValue(char & szTemp,const int nPos,const int nValue) { ASSERT( nPos<8 && nPos >= 0); // 下标位只能是0-7 if( nValue == 1) szTemp |= 1UL << nPos; // 将nPos的bit位设置为1,其他位不变 else if(nValue == 0) szTemp &= ~(1UL<<nPos); // 将nPos的bit位设置为0,其他位不变 else ASSERT(FALSE); // 否则报错! } /************************************************************************ 函数作用: main入口函数 参数说明: 无 返 回 值: 无 备注信息: 2010-09-05 by Koma ************************************************************************/ int main( ) { char cTemp = 'A'; bool b; int i; bitset<8> b1(cTemp); cout << "修改bit位之前为: ( "<< b1 << " )."<<endl; for ( i = 0 ; i < 8 ; i++ ) { b = b1[ i ]; cout << " 第 "<< i << " 个bit为值为 " << b << "/n"; } // 修改bit位值 SetBitValue(cTemp,0,1); SetBitValue(cTemp,1,1); SetBitValue(cTemp,2,1); SetBitValue(cTemp,3,1); SetBitValue(cTemp,4,1); bitset<8> b2(cTemp); cout << "修改bit位之后为:: ( "<< b2 << " )."<< endl; for ( i = 0 ; i < 8 ; i++ ) { b = b2[ i ]; cout << " 第 "<< i << " 个bit为值为 " << b << "/n"; } return 0; } // end of file Bit.cpp //

 

运行结果:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪宁宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值