继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【备战春招】第8天-C01位运算之按位或

taoy
关注TA
已关注
手记 94
粉丝 9
获赞 1
  • 课程名称:Linux C语言结构体
  • 课程链接:https://www.imooc.com/learn/409
  • 章节名称:
    • 第6章:位运算的秘密
      • 6-2 按位或
      • 6-3 按位异或
  • 讲师姓名:雷过就跑
  • 时间:2023-02-14 17:30

课程内容

  • 按位或:将参与的两个数进行逻辑或运算

    • 作用:设定数据指定位上的值比如:一个int类型的数值,用二进制表示为
      • 0010,0101-1101,1001-0010,0110-1101,0101
      • 如果想将左数第3个字节都换成1,可以使用数值 | 0xFF00
  • 按位异或:异或是运算位值都不相同,结果为1,否则为0,也可以说对位二进制数互斥,结果为真,否则为假

    • 作用:

      • 定位翻转功能:把指定位值0与1互转,例如想把左数最后一个字节按位翻转,可以使用数值 ^ 0xFF

      • 数值交换功能

        • int a = 9, b = 5;
          a = a ^ b;
          b = a ^ b;
          a = a ^ b;
          
        • 上述代码能够成立的原因在于a ^ a = 0; a ^ b = b ^ a自己和自己异或,结果为0;异或运算满足交换率

  • 按位取反,是唯一单目运算符,对每一位取反

学习心得

以前一直没有搞懂为什么异或运算可以不用增加中间变量来交换两个变量的值,这回的学习搞清楚了,是因为异或运算有一些特殊性质
按位或
按位异或

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP