LINUX.ORG.RU

История изменений

Исправление beastie, (текущая версия) :

Что делает эта связка ioval= ioval & 0xFE; мне не ясно совсем

Снимает младший бит.

// set bit
val |= 1<<n;
// clear bit
val &= ~(1<<n)

В твоём примере n=0: ~(1<<0) == ~1 == 0xFE == b11111110

bwhatever & b11111110 = bwhateve0

Исправление beastie, :

Что делает эта связка ioval= ioval & 0xFE; мне не ясно совсем

Снимает младший бит.

// set bit
val |= 1<<n;
// clear bit
val &= ~(1<<n)

В твоём примере n=0: ~(1<<0) == ~1 == 0xFE == 0x11111110

0xwhatever & 0x11111110 = 0xwhateve0

Исправление beastie, :

Что делает эта связка ioval= ioval & 0xFE; мне не ясно совсем

Снимает младший бит.

// set bit
val |= 1<<n;
// clear bit
val &= ~(1<<n)

В твоём примере n=1: ~(1<<1) == ~1 == 0xFE == 0x11111110

0xwhatever & 0x11111110 = 0xwhateve0

Исходная версия beastie, :

Что делает эта связка ioval= ioval & 0xFE; мне не ясно совсем

Снимает младший бит.

// setbit
val |= 1<<n;
// clear bit
val &= ~(1<<n)

В твоём примере n=1: ~(1<<1) == ~1 == 0xFE == 0x11111110

0xwhatever & 0x11111110 = 0xwhateve0