Там есть переменная:Как установить бит в C
char segment = 0;
После 1 или с битом 15, сегмент = 1;
Просто означает, что этот бит уже проверен.
Вопрос в том, как отменить отметку бит 15 (установлен на 0)?
Использование "~"?
Там есть переменная:Как установить бит в C
char segment = 0;
После 1 или с битом 15, сегмент = 1;
Просто означает, что этот бит уже проверен.
Вопрос в том, как отменить отметку бит 15 (установлен на 0)?
Использование "~"?
Чтобы избавиться от MSB из 8-битового символа, например, вы можете и с 0x7F
например сегмент = сегмент & 0x7F;
Для динамического создания маски вы можете использовать операции смещения битов (то есть оператор < <).
Следующая программа устанавливает бит, очищает бит и переключает бит
#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
}
'char' имеет только 8 бит (не 15) – mvp
@mvp правильно - также смотрите здесь http://stackoverflow.com/q/47981/2065121 –
Извините, я только начал изучать язык C. 0 0 0 1 назад 0 0 0 0 – Yun