Binární číslo je reprezentováno posloupností binárních hodnot (např. zapisovaných jako 0 a 1) a takto reprezentovaná čísla se používají v digitální technice založené na logických hradlech.

Nejpoužívanější mocniny 2

mocninahodnotapoznámka
532single precision
664double precision
7128
8256byte
9512
101,0241 kiB
201,048,5761 MiB
301,073,741,8241 GiB
324,294,967,2964 GiB
401,099,511,627,7761 TiB

Hexadecimální čísla

hexadecimálněbinárněhexadecimálněbinárně
0000081000
1000191001
20010A1010
30011B1011
40100C1100
50101D1101
60110E1110
70111F1111

Bitové operace

Logický součin

Logický součin vrací 1 v případě, že jsou oba činitelé 1, v ostatních případech 0. Také se značí jako AND, &&, &.

aba AND b
000
010
100
111

Příklad:

      a = 11000001010100000000000100110111
      b = 10000100000100000001000101010111
a AND b = 10000000000100000000000100010111

V jazyce Java:

int a = 0xC1500137;
int b = 0x84101157;
int r = a & b; // = 0x80100117

Logický součet

Logický součet vrací 1 v případě, že je alespoň jeden sčítanec 1, v ostatních případech 0. Také se značí jako OR, ||, |.

aba OR b
000
011
101
111

Příklad:

     a = 11000001010100000000000100110111
     b = 10000100000100000001000101010111
a OR b = 11000101010100000001000101110111

V jazyce Java:

int a = 0xC1500137;
int b = 0x84101157;
int r = a | b; // = 0xC5501177

Exkluzivní součet

Exkluzivní součet vrací 1 v případě, že se sčítance liší, v ostatních případech 0. Také se značí jako XOR.

aba XOR b
000
011
101
110

Příklad:

      a = 11000001010100000000000100110111
      b = 10000100000100000001000101010111
a XOR b = 01000101010000000001000001100000

V jazyce Java:

int a = 0xC1500137;
int b = 0x84101157;
int r = a ^ b; // = 0x45401060

Bitový posuv

Bitový posuv bity v daném čísle posune o zadaný počet míst vlevo či vpravo. Existují však různé druhy posuvu podle toho, jakými hodnotami vyplňuje krajní pozice.

Aritmetický posuv

Aritmetický posuv respektuje kódování čísla, které je posouváno, a proto má i aritmetický význam - posuv o jednu pozici vlevo odpovídá násobení dvěma a posuv vpravo dělení. Opakovaným aritmetickým posuvem lze tedy velmi efektivně násobit a dělit mocninami čísla 2. V případě doplňkového kódu a záporného čísla (tzn. nejvýznamnější bit je 1) jsou směrem od nejvýznamnějšího nasouvány hodnoty 1, jinak 0.

     a = 11000001010100000000000100110111
a >> 1 = 11100000101010000000000010011011
a >> 5 = 11111110000010101000000000001001
a << 3 = 00001010100000000000100110111000
     b = 00010100101010110110111101101111
b >> 1 = 00001010010101011011011110110111
b >> 5 = 00000000101001010101101101111011
b << 3 = 10100101010110110111101101111000
Logický posuv

Logický posuv nemá žádný aritmetický význam a z obou krajních pozic generuje za všech okolností nuly.

      a = 11000001010100000000000100110111
a >>> 1 = 01100000101010000000000010011011
a >>> 5 = 00000110000010101000000000001001
a <<< 3 = 00001010100000000000100110111000