A. Převody mezi číselnými soustavami

  1. V jakých číselných soustavách jsou čísla 0x12, 12 a 012?
    0x12 - šestnáctková, 12 - desítková, 012 - osmičková
  2. Převeď číslo 0010 1001 0001 1000 z dvojkové soustavy do desítkové.
    0010 1001 0001 1000 ≙ 23 + 24 + 28 + 211 + 213 = 10 520
  3. Převeď číslo 0100 1100 z dvojkové soustavy do desítkové.
    0100 1100 ≙ 4 + 8 + 64 = 76
  4. Převeď číslo 1010 0111 z dvojkové soustavy do desítkové.
    1010 0111 ≙ 1 + 2 + 4 + 32 + 128 = 167
  5. Co nejjednoduššeji převeď číslo 0000 0011 1111 1111 z dvojkové soustavy do desítkové.
    0000 0011 1111 1111 = 0000 0100 0000 0000 − 1 ≙ 210 − 1 = 1024 − 1 = 1023
  6. Bez použití dělení převeď číslo 23 z desítkové soustavy do dvojkové.
    23 = 16 + 4 + 2 + 1 ≙ 1 0111
  7. Bez použití dělení převeď číslo 130 z desítkové soustavy do dvojkové.
    130 = 128 + 2 ≙ 1000 0010
  8. Převeď číslo 722 z desítkové soustavy do dvojkové pomocí dělení. Použij obě varianty algoritmu.
    10 1101 0010
  9. Převeď číslo 0x9A4E do desítkové soustavy.
    0x9A4E ≙ 14 · 160 + 4 · 161 + 10 · 162 + 9 · 163 = 39 502
  10. Převeď číslo 43 824 z desítkové soustavy do šestnáctkové.
    0xAB30 (použij algoritmus, ve kterém se dělí 16)
  11. Převeď číslo 1111 1011 1100 0101 z dvojkové soustavy do šestnáctkové.
    1111 : 1011 : 1100 : 0101 ≙ 8+4+2+1 : 8+2+1 : 8+4 : 4+1 = 15 : 11 : 12 : 5 ≙ 0xFBC5
  12. Převeď číslo 0x4CE97A do dvojkové soustavy.
    4 : C : E : 9 : 7 : A ≙ 4 : 12 : 14 : 9 : 7 : 10 = 4 : 8+4 : 8+4+2 : 8+1 : 4+2+1 : 8+2 ≙ 0100 1100 1110 1001 0111 1010
  13. Převeď číslo 0110 1011 0111 1101 z dvojkové soustavy do šestnáctkové.
    0110 : 1011 : 0111 : 1101 ≙ 2+4 : 1+2+8 : 1+2+4 : 1+4+8 = 6 : 11 : 7 : 13 ≙ 0x6B7D

B. Převody jednotek

  1. Kolik bajtů je 45 KiB 500 B?
    45 KiB 500 B = 45 · 1024 + 500 = 46 580 B
  2. Kolik jsou 4 MiB bajtů?
    4 MiB = 4 · 1 024 KiB = 4 · 1024 · 1024 B = 4 194 304 B
  3. Kolik jsou 4 Mib bajtů (všimni si malého b)?
    4 Mib = 4 · 220 b = 4 · 220 / 8 B = 524 288 B
  4. Převeď 13 500 000 B na MiB s přesností na jedno desetinné místo.
    13 500 000 / 1024 / 1024 B ≐ 12.9 MiB
  5. Převeď 72 000 B na KiB a bajty.
    75 000 B = 73 KiB 248 B
  6. Převeď 16 100 000 B na MiB, KiB a bajty.
    16 100 000 B = 15 MiB 371 360 B = 15 MiB 362 KiB 672 B
  7. Kolik bajtů ušetří výrobce paměti, když místo paměti o velikosti 8 GiB vyrobí paměť jen o 8 GB?
    8 GiB - 8 GB = 8 · 230 - 8 · 109 = 589 934 592 B ≐ 0.550 GiB

C. Rozsahy neznaménkových číselných proměnných

  1. Kolik různých hodnot se vejde do 6 bitové proměnné?
    26 = 64
  2. Kolik různých hodnot se vejde do dvoubajtové proměnné?
    216 = 65 536
  3. Jaké největší číslo lze uložit do 7 bitové proměnné?
    Do 7 bitové proměnné lze nejvýše uložit číslo 111 1111 = 1000 0000 − 1 ≙ 128 - 1 = 127
  4. Pomocí mocniny urči největší hodnotu, kterou lze uložit do čtyřbajtové proměnné.
    232 − 1

D. Celá čísla se znaménkem v nejvýznamnějším bitu

  1. Urči největší a nejmenší číslo, která lze uložit do 6 bitové proměnné, která reprezentuje celé číslo se znaménkem v nejvýznamnějším bitu.
    Největší číslo: 01 1111 ≙ 31, nejmenší číslo: 11 1111 ≙ −31.
  2. Pomocí mocniny urči největší a nejmenší číslo, které lze uložit do 2-bajtové proměnné, která reprezentuje celé číslo se znaménkem v nejvýznamnějším bitu.
    Největší číslo: 0111 1111 1111 1111 ≙ 215 − 1, nejmenší číslo: −(215 − 1).
  3. Které číslo zapsané v desítkové soustavě musíme uložit do 1-bajtové proměnné reprezentující celé číslo se znaménkem v nejvýznamnějším bitu, aby reprezentovala hodnotu −45?
    45 = 32 + 8 + 4 + 1 ≙ 10 1101 ⇒ 1010 1101 ≙ = 1+4+8+32+128 = 173
  4. V 1-bajtové proměnné, která reprezentuje celé číslo se znaménkem v nejvýznamnějším bitu, je uložena hodnota 0x9C. Které číslo tato proměnná reprezentuje?
    0x9C ≙ 9 : C = 9 : 12 = 8+1 : 8+4 ≙ 1001 1100 ≙ − 0001 1100 ≙ −(4+8+16) = −28
  5. Urči absolutní hodnotu čísla reprezentovaného 2-bajtovou proměnnou se znaménkem v nejvýznamnějším bitu, když je v ní uložena hodnota 0xA8CD.
    0xA8CD ≙ 10 : 8 : 12 : 13 = 8+2 : 8 : 8+4 : 8+4+1 ≙ 1010 1000 1100 1101 ⇒ 0010 1000 1100 1101 ≙ 1+4+8+64+128+211+213 = 10 445
  6. Urči v šestnáctkové soustavě hodnotu, která bude v proměnné, do které uložíme výsledek součtu dvou proměnných, ve kterých jsou uloženy hodnoty 0x29 a 0xFC. Všechny proměnné jsou jednobajtové a reprezentují celé číslo se znaménkem v nejvýznamnějším bitu.
    1. číslo: 0x29 ≙ 2 * 16 + 9 = 41
    2. číslo: 0xFC ≙ 1111 1100 ⇒ − 0111 1100 ≙ −124
    Součet: 41 + (−124) = −83 ≙ −(64+16+2+1) ≙ − 0101 0011 ≙ 1101 0011 ≙ 0xD3