位运算 C++

原码:是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。

反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码:正数的反码与其原码相同;负数的补码等于其源码的符号位不变,数值部分的各位取反,然后整个数加1。

 

位运算:

 

范围:一般适合只有两种case的情况,速度比较快

 

C++

实现1:

#include <bitset>

bitset< 32 > bitvec;声明了一个含有32 个位的bitset 对象位的顺序从0 到31 缺省情况下所有的位都被初始化为0
 
bitvec.set(27);//设置第27位为1
bitvec.reset(27);//设置第27位为0
status = bitvec[27];//查询第27位结果
 
实现2:
 
也可以自己使用  unsighed long int_bit = 0;//初始化为0
 
 设置第27位为1:
 int_bit |= 1UL<<27;
等价于  int_bit = int_bit | 1UL<<27;
 
 设置第27位为0:
 int_bit &= ~(1UL<<27);
等价于  int_bit = int_bit &  ~(1UL<<27);
 
status = int_bit &  (1UL<<27);//查询第27位结果
 
 
 
 
 
 

转载于:https://www.cnblogs.com/liujin2012/archive/2013/03/18/2965852.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值