查看: 1680|回复: 5

[其他] 每天解决一个问题22天 :C语言的位逻辑

[复制链接]
  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16701
    最后登录
    1970-1-1
    发表于 2015-9-15 11:06:09 | 显示全部楼层 |阅读模式
    好吧!这个是我自己起的名字——位逻辑。今天给大家分享一下!


    ==============================================


    一、问题描述:
    经常看到程序中有&&、||、!,还有&、|、~。
    有些初学者对C语言的疑问:逻辑运算有&&、||、!之外,怎么还有&、|、~呢,它们有什么区别,有什么作用呢?


    二、解决办法:
    1、首先:
    C语言的&&、||、!是逻辑运算,是把运算的非0数据看成逻辑真,0为逻辑假,进行逻辑运算。
    2、而C语言还有位运算符&、|、^、~、<<、>>,这些都是需要将数据按二进制,对应位进行运算。
    3、这次之给大家分享一下其中的逻辑运算及其作用,&、|、^:


    (1)& 按位与   作用——清零  ——想哪些位清零,将该位与0,保持不变的与1
    举个例子:
    有一字节数据uint8_t x,将高4位清零,第4位保持不变
    可使用:x & 0x0f
    假设:x = 10100101
    则计算为:
    0050.jpg


    (2)| 按位或   作用——置一  ——想哪些位置一,将该位或1,保持不变的或0
    举个例子:
    有一字节数据uint8_t x,将高4位置一,第4位保持不变
    可使用:x | 0x0f
    假设:x = 10100101
    则计算为:
    0051.jpg


    (3)^ 按位异或  作用——取反  ——想哪些位取反,将该位异或1,保持不变的异或0
    举个例子:
    有一字节数据uint8_t x,将最低位取反,其它位保持不变
    可使用:x ^ 0x01
    假设:x = 10100101
    则计算为:
    0052.jpg


    三、感想与收获:
    1、需要灵活运用所谓的位逻辑




    我知道答案 目前已有5人回答
    回复

    使用道具 举报

    该用户从未签到

    61

    主题

    965

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2394
    最后登录
    1970-1-1
    发表于 2015-9-15 12:49:35 | 显示全部楼层
    多看c语言基础
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-8-30 16:02
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    36

    主题

    1065

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1851
    最后登录
    2019-11-19
    发表于 2015-9-15 21:17:55 | 显示全部楼层
    感谢分享
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16701
    最后登录
    1970-1-1
     楼主| 发表于 2015-9-16 09:49:07 | 显示全部楼层
    多谢支持 blank0.png blank1.png blank2.png blank3.png blank4.png blank5.png blank6.png blank7.png blank8.png blank9.png
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-1-30 19:52
  • 签到天数: 19 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    19

    主题

    628

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1509
    最后登录
    2018-5-28
    发表于 2015-9-16 09:54:23 | 显示全部楼层
    学习了  
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16701
    最后登录
    1970-1-1
     楼主| 发表于 2015-9-16 09:55:46 | 显示全部楼层
    本帖最后由 lkl0305 于 2015-9-16 22:38 编辑

    共同学习 blank0.png blank1.png blank2.png blank3.png blank4.png blank5.png blank6.png blank7.png blank8.png blank9.png
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 01:58 , Processed in 0.098733 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表