【24.1.29笔记】自学C++ Primer Day19

四、表达式

11、位操作符

操作符功能用法
~按位非~exp
<<左移exp1<<exp2
>>右移exp1>>exp2
&按位与exp1&exp2
^按位异或exp1^exp2
|按位或exp1|exp2
&=按位与赋值exp1&=exp2
^=按位异或赋值exp1^=exp2
|=按位或赋值exp1|=exp20

        位操作符把操作数解释成有序的位集合,位集合可能是独立的,也可能组成域。在C++中,位集合通常用整数类型表示【粗浅的理解就是把数用二进制表示,然后对每一个位进行处理】,每个位代表一个二进制位【位操作符只能对二进制位进行操作】。在位域里,可以限制位长度,形式为【如果限制了长度,能够更加精确分配内存空间】:

    type fieldName : width;

        C++有两种方式来表示类向量:

        1、使用内置整型:int 【一般使用unsigned int】;

        2、使用标准库中的bitset类【用来管理位向量的基本形式和基本操作】 

       "~"等操作符对一个位向量的每一位进行翻转,0变1,1变0;

        "&"、"|"、"^"对两个位向量进行逻辑判断,如果逻辑正则为1,不符合则为0;

        "<<"、">>"对位向量进行移位操作【左移高位删除,低位补零】【如果是有符号数,得考虑最高位的符号变换】【右移高位补符号数,低位删除】:

short a = 9115; //0010001110011011
a<<1;   //0100011100110110
a<<2;    //1000111001101100

short c = -32766;    // 1000000000000010
c>>1; //1100000000000001
    

        如果加上赋值,就是把等号右边和左边的位向量先进行逻辑运算,然后把逻辑运算的结果赋值给左值。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值