変数があります:
char segment = 0;
1 またはビット 15 の後、セグメント = 1;
このビットチェックがすでに行われていることを意味します。
質問は、ビット 15 のマークをキャンセルする方法です (0 に戻す)。
「~」を使う?
次のプログラムはビットをセットし、ビットをクリアし、ビットをトグルします
#include<stdio.h>
void main(void)
{
unsigned int byte;
unsigned int bit_position;
unsigned int tempbyte = 0x01;
//get the values of the byte and the bit positions
//set bit
byte = (byte | (tempbyte << bit_position));// set the bit at the position given by bit_position
//clear bit
byte = (byte & ~(tempbyte << bit_position));//clear the bit at the position given by bit_position
//toggle bits
byte = (byte ^ (tempbyte << bit_position));//toggle the bit at the position given by bit_position
}