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

huameixiao發表於2024-03-17

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;

相關文章