操作二进制位串的工具

操作二进制位串的工具

一.位运算符

  • 位运算符作用于整数类型的对象,并把运算对象看成是二进制位的集合。
  • 它提供检查和设置二进制位的功能。

运算符 功能 用法
~ 位求反 ~expr
<< 左移 expr1 << expr2
>> 右移 expr1 >> expr2
& 位与 expr1 & expr2
^ 位异或 expr1 ^ expr2
| 位或 expr1

- 符号位的处理没有规定,因此建议仅用于处理无符号类型
- 一般来说,如果运算对象是”小整型“,则它的值会被自动提升成较大的整数类型。运算对象可以是带符号的,且为负,则如何处理”符号位“依赖于机器。而且此时左移可能会改变符号位的值,是一种未定义行为。
- 整型提升:任何使用了char,short,整型位域或者枚举类型的表达式,(bool、char、signed char、unsigned char、short、unsigned short等小于int的类型),如果装得下,都会被提升成int类型;否则提升为unsigned int。较大的char(wchar_t、char_16_t、char_32_t)则提升为int–unsigned long long中刚好能装下其所有可能的一种


移位运算符

对运算对象执行基于二进制的移动操作

unsigned char bits = 0233;// 0233是八进制的字面值
内存中
0X12342 0X12343 0X12344 0X12345
其 余 的 数 据 其 余 的 数 据 其 余 的 数 据 1 0 0 1 1 0 1 1
bits << 8;// bits提升为int,向左移8位
0X12342 0X12343 0X12344 0X12345
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0
bits <<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值