有没有梦想 发表于 2019-10-6 18:52

初学者请教一下 想把资源的4、5、6bit设置为101

有没有好的想法 设置bit5为高 其他位不变 a = a | (0x1<<5) 清除第五位 a & (~(0x1<<5))

有没有梦想 发表于 2019-10-6 18:58

大哥们 是c语言啊

Kan刊 发表于 2019-10-6 20:41

不知道我有没有理解你的意思,你要设置第4、5、6bit为101,转成10进制就是40,那么用或运算就可以了,a |= 40

michaelgao 发表于 2019-10-7 11:18

本帖最后由 michaelgao 于 2019-10-7 11:21 编辑

# include <stdio.h>

#define BIT0   1
#define BIT1   2
#define BIT2   4
#define BIT3   8
#define BIT4   16
#define BIT5   32
#define BIT6   64
#define BIT7   128

int main(void)
{
      int a = 0;
      scanf("输入a的原始值%d", &a);
      a |= BIT4;
      a |= BIT6;
      printf("a = %d\n", a);
      return 0;
}

标准c语言,从0开始算位数,数组也一样;尽量规范、灵活一点,便于维护;
页: [1]
查看完整版本: 初学者请教一下 想把资源的4、5、6bit设置为101