Notice
This page is located in a preparation section.

Číselné soustavy

Číselné soustavy se v digitální technice používají pro reprezentaci a zpracování informací. Nejčastěji se setkáváme s těmito soustavami:

  • binární (2) – základní soustava v digitální technice
  • desítková (10) – běžná soustava pro člověka
  • šestnáctková (16) – zkrácený zápis binárních čísel

Základní přehled

Soustava Základ Používané symboly
Binární 2 0, 1
Desítková 10 0–9
Hexadecimální 16 0–9, A–F

Převody mezi soustavami

Binární → Desítková

Každá číslice (bit) má váhu mocniny 2:

Např.:

  • $1011_2 = 1·2^3 + 0·2^2 + 1·2^1 + 1·2^0 = 11_{10}$

Desítková → Binární

Postupné dělení dvěma:

  • 13 ÷ 2 = 6 zbytek 1
  • 6 ÷ 2 = 3 zbytek 0
  • 3 ÷ 2 = 1 zbytek 1
  • 1 ÷ 2 = 0 zbytek 1

Výsledek čteme odzadu:

  • $13_{10} = 1101_2$

Binární ↔ Hexadecimální

Převod probíhá po čtveřicích bitů:

Bin Hex Bin Hex
0000 0 1000 8
0001 1 1001 9
0010 2 1010 A
0011 3 1011 B
0100 4 1100 C
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F

Např.:

  • $1011\ 0110_2 = B6_{16}$

Záporná čísla

Záporná čísla se v digitální technice reprezentují pomocí dvojkového doplňku.

Postup:

1. zapíšeme číslo v binární podobě  
2. invertujeme bity (0 ↔ 1)  
3. přičteme 1  

Např.:

  • $5_{10} = 0101_2$
  • inverze → 1010
  • +1 → 1011 = -5

BCD kód

BCD (Binary Coded Decimal) reprezentuje každou desítkovou číslici samostatně pomocí 4 bitů.

Dec BCD
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

Použití:

  • 7segmentové displeje
  • jednoduché zobrazování čísel

Přetečení (overflow)

K přetečení dochází, pokud výsledek operace nelze reprezentovat daným počtem bitů.

Např. pro 4 bity:

  • $1111_2 + 1 = 1\ 0000_2$ → přetečení

Přebytečná „jednička“ vlevo představuje tzv. příznak přenosu (carry).

Tento příznak:

  • indikuje přenos mimo rozsah registru
  • ukládá se do stavového registru procesoru (např. Program Status Register)
  • označuje se jako carry bit (C)

Carry vs. Overflow

V digitálních systémech je důležité rozlišovat dva různé příznaky:

Carry (C)

  • používá se pro neznaménková čísla (unsigned)
  • značí přenos mimo rozsah (např. 255 + 1 u 8 bitů)
  • sleduje „fyzické“ přetečení bitů

Overflow (V)

  • používá se pro znaménková čísla (signed, dvojkový doplněk)
  • značí, že výsledek nedává správný matematický smysl
  • vzniká, když:
    1. sečtou se dvě kladná čísla a výsledek je záporný
    2. nebo dvě záporná a výsledek je kladný

Příklad (4 bity, signed):

  • $0111_2 (7) + 0001_2 (1) = 1000_2 (-8)$ → overflow

Rychlé tipy

  • 1 hex cifra = 4 bity
  • 1 byte = 8 bitů = 2 hex cifry
  • binární čísla se dobře čtou po 4 bitech (nibble)
  • mocniny 2: 1, 2, 4, 8, 16, 32, 64, 128, …

Zápis čísel v jazyce C

V programovacím jazyce C lze zapisovat čísla v různých soustavách pomocí specifických prefixů:

Soustava Zápis v C Příklad Hodnota
Desítková bez prefixu 10 10
Binární1) 0b 0b1010 10
Hexadecimální 0x 0x0A 10

Příklady

int a = 10;      // desítkově
int b = 0b1010;  // binárně
int d = 0xA;     // hexadecimálně

1)
Binární zápis (0b…) není součástí standardu jazyka C. Je podporován pouze některými překladači (např. GCC, Clang) jako rozšíření. V přenosném C se proto používá hexadecimální zápis (0x…) nebo bitové operace.
courses/b2m37mam/tutorials/dit/ciselne_soustavy.txt · Last modified: 2026/04/15 13:43 by nentvond