位掩码操作:以下代码在C中的含义是什么

  • 本文关键字:是什么 代码 操作 掩码 c
  • 更新时间 :
  • 英文 :


我目前正在尝试调试一件代码,但我无法弄清楚以下代码的确做什么。谁能帮助我解释或给我有关以下代码功能的想法?

uint8_t get_pca9955a_slave_loaded(uint8_t _slave)
      {
        uint8_t x = (uint8_t)(_slave / 16);
        uint8_t y = (uint8_t)(_slave % 16);
        uint16_t mask = 1U << y;
       if (check_pca9955a_slave_valid(_slave)) {
           return (uint8_t)((pca9955a_slaves_loaded[x] & mask) ? 1U : 0U);
        } else {
                return 0U;
               }
       }

亲切的问候,张

它将一个字节拆开到其高鼻涕x和低鼻涕y中。服用mod 16与取四个最低位相同,除以16与取下剩余的位相同。

然后,它使用y来计算bitmask和x作为您未共享的全局变量表的偏移一个未签名的字节。

最新更新