Otevře se na nové kartě

Praktické ukázky bitových operací v C

Dělají Vám problémy bitové operace (OR, AND, XOR, bitový komplement) a nevíte jaký výsledek z toho vyjde? Pak si přečtěte následující článek, který snad objasní vaše tápání + přidá několik vzorových příkladů.

operátor | – bitový OR

pravdivostní tabulka hradla OR

A | B || Y

————

0 | 0 || 0

0 | 1 || 1

1 | 0 || 1

1 | 1 || 1

A = 0x0F

B = 0x0C

Y = (A | B)
Y = 0x0F

0b00001111 – A

0b00001100 – B

—————-

0b00001111 – výsledek OR

operátor & – bitový AND

pravdivostní tabulka hradla AND

A | B || Y

————

0 | 0 || 0

0 | 1 || 0

1 | 0 || 0

1 | 1 || 1

A = 0x0F

B = 0x0C

Y = (A & B)
Y = 0x0C

0b00001111 – A

0b00001100 – B

—————-

0b00001100 – výsledek AND

operátor ^ – bitový exclusive OR (XOR)

pravdivostní tabulka hradla XOR

A | B || Y

————

0 | 0 || 0

0 | 1 || 1

1 | 0 || 1

1 | 1 || 0

Y = 0x00

A = 0x0F

B = 0x0C

Y ^= (A | B) –nejprve se provede bitový OR mezi A a B (viz výše) a poté se provede XOR s Y
Y = 0x0F

0b00001111 – A

0b00001100 – B

—————-

0b00001111 – výsledek OR

0b00000000 – Y

—————-

0b00001111 – výsledek XOR

Y = 0x00

A = 0x0F

B = 0x0C

Y ^= (A & B) –nejprve se provede bitový AND mezi A a B (viz výše) a poté se provede XOR s Y
Y = 0x0C

0b00001111 – A

0b00001100 – B

————————-

0b00001100 – výsledek OR

0b00000000 – Y

————————-

0b00001100 – výsledek XOR

operátor ~ – bitový komplement

tabulka pro bitový komplement

A || Y

————

0 || 1

1 || 0

Y = 0x00

A = 0x0F

B = 0x0C

Y = ~(A | B) –nejprve se provede bitový OR mezi A a B (viz výše) a poté se provede bitový komplement s Y
Y = 0xF0

0b00001111 – A

0b00001100 – B

—————-

0b00001111 – výsledek OR

0b00000000 – Y

—————-

0b11110000 – výsledek bitový komplement

Y = 0x00

A = 0x0F

B = 0x0C

Y = ~(A & B) –nejprve se provede bitový AND mezi A a B (viz výše) a poté se provede bitový komplement s Y
Y = 0xF3

0b00001111 – A

0b00001100 – B

—————-

0b00001100 – výsledek AND

0b00000000 – Y

—————-

0b11110011 – výsledek bitový komplement

Bitový posun << >> – vlevo/vpravo

Y = 0x0F >> 2 –bitový posun vpravo
Y= 0x03

0b00001111 – 0x0F

0b00000011 – výsledek posunu vpravo

Y = 0x0F >> 2 –bitový posun vlevo
Y = 0x3C

0b00001111 – 0x0F

0b00111100 – výsledek posunu vlevo

Další příklady:

Y = 0x0C

Y &= 0x0F –> Y = 0x0C & 0x0F
Y = 0x0C

0b00001111 – 0x0F

0b00001100 – 0x0C

—————-

0b00001100 – výsledek AND

Y = 0x00

Y ^= ~0x0F –> nejprve se zneguje 0x0F na 0xF0 a poté se provede bitový XOR tedy:
Y = 0xF0

0b00001111 – 0x0F

—————-

0b11110000 – výsledek bitový komplement

0b00000000 – Y

—————-

0b11110000 – výsledek XOR

Sdílejte článek:
Tričko Chiptron s potiskem Trust me, I'm a maker
Ukaž světu,
že jsi Maker!
Koupit tričko
Kafe pro Chiptrona
Dodej energii dalšímu článku
Buy Me a Coffee

Související články

Webová bitová kalkulačka zobrazuje převod čísla 255 mezi desítkovou, šestnáctkovou a dvojkovou soustavou

Z jednoduchého převodníku DEC/BIN/HEX/ASCII vyrostl pořádný nástroj pro bastlíře. Signed/unsigned, bitová kalkulačka, bitmask helper s C kódem a prefix notace — zdarma a bez instalace.

Grafika propagující bezplatné kurzy používání umělé inteligence

Umělá inteligence už není sci-fi — ChatGPT, Gemini nebo Claude dnes umí napsat e-mail, shrnout dlouhý dokument, naplánovat dovolenou nebo připravit pracovní list do školy za pár vteřin. Háček je v tom, že většina lidí neví, jak na to. Placené online kurzy práce s…

Schéma tyristoru se čtyřmi polovodičovými vrstvami P a N a vývody

Je to polovodičová součástka se třemi přechody PN.

Trendy