C语言中的置0和置1操作

C语言中的置0和置1操作

  • 置0

如果要将一个数的6位和10位置0,生成一个第6位和第10位都为0的数,拿这个数与要操作的数做(&)操作即可。生成一个第6位和第10位都为0的数可以使用1左移6位或者10位取反得到。

// test =  0b0000010001000000
 unsigned short test = 1 << 6 | 1 << 10;
 // 第6位和第10位置0
 test &= ~(1<<6|1<<10);
  • 置1

如果要将一个数的2位和3位置1,生成一个第2位和第3位都为1的数,拿这个数与要操作的数做(|)操作即可。

    //  test =  0b1000000000000000
    unsigned short test = 32768;
    // 第6位和第10位置0
    test |= 1<<6|1<<10;
posted @ 2024-03-17 14:13  huameixiao  阅读(35)  评论(0编辑  收藏  举报