为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
C
  • 课程名称: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;异或运算满足交换率

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

学习心得

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

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
9
获赞与收藏
1

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消