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.Čí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:
| Soustava | Základ | Používané symboly |
|---|---|---|
| Binární | 2 | 0, 1 |
| Desítková | 10 | 0–9 |
| Hexadecimální | 16 | 0–9, A–F |
Každá číslice (bit) má váhu mocniny 2:
Např.:
Postupné dělení dvěma:
Výsledek čteme odzadu:
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ř.:
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ř.:
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í:
K přetečení dochází, pokud výsledek operace nelze reprezentovat daným počtem bitů.
Např. pro 4 bity:
Přebytečná „jednička“ vlevo představuje tzv. příznak přenosu (carry).
Tento příznak:
V digitálních systémech je důležité rozlišovat dva různé příznaky:
Příklad (4 bity, signed):
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 |
int a = 10; // desítkově int b = 0b1010; // binárně int d = 0xA; // hexadecimálně
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.