Operácie

Prevody medzi číselnými sústavami: Rozdiel medzi revíziami

Z SensorWiki

(Teoretický úvod)
(Otestujte sa sami)
Riadok 117: Riadok 117:
  
  
== Otestujte sa sami ==
+
Vyplňte nasledovnú tabuľku
 +
{|
 +
! DEC !!  HEX !! BIN
 +
| 0  ||      ||
 +
|-
 +
| 1  ||      ||
 +
|-
 +
| 2  ||      ||
 +
|-
 +
| 3  ||      ||
 +
|-
 +
| 4  ||      ||
 +
|-
 +
| 5  ||      ||
 +
|-
 +
| 6  ||      ||
 +
|-
 +
| 7  ||      ||
 +
|-
 +
| 8  ||      ||
 +
|-
 +
| 9  ||      ||
 +
|-
 +
|10  ||      ||
 +
|-
 +
|11  ||      ||
 +
|-
 +
|12  ||      ||
 +
|-
 +
|13  ||      ||
 +
|-
 +
|14  ||      ||
 +
|-
 +
|15  ||      ||
 +
|}
  
 +
2. Preveďte niekoľko čísel z jednej sústavy do inej podľa pokynov cvičiaceho.
  
<quiz shuffleanswers=true display=simple>
+
3. Rozsahy Bajt, 2Bajty, 4Bajty (min, max)
  
{ Preveďte číslo '''234'''<sub>DEC</sub> z desiatkovej do dvojkovej sústavy:
+
4. BCD kód
|type="{}"}
 
{ 1110 1010|11101010 }
 
  
{ Preveďte číslo '''101'''<sub>10</sub> z desiatkovej do dvojkovej sústavy:
+
5. ASCII kód
|type="{}"}
 
{ 110 0101|1100101 }
 
  
{Preveďte číslo '''234'''<sub>BIN</sub> z dvojkovej do desiatkovej sústavy:
+
6. Záporné čísla - doplnkový kód
|type="{}"}
 
{ 1110 1010|11101010 }
 
  
{Preveďte číslo '''1010 1010'''<sub>2</sub> z dvojkovej do desiatkovej sústavy:
 
|type="{}"}
 
{ 170 }
 
  
</quiz>
 
  
<quiz shuffleanswers=true display=simple>
+
== Otestujte sa sami ==
 
 
{Preveďte číslo '''234'''<sub>DEC</sub> z desiatkovej do šestnástkovej sústavy:
 
|type="{}"}
 
{ EA (i)|0EA (i) }
 
 
 
{Preveďte číslo '''101'''<sub>10</sub> z desiatkovej do šestnástkovej sústavy:
 
|type="{}"}
 
{ 65 }
 
 
 
{Preveďte číslo '''0C7'''<sub>16</sub> z šestnástkovej do desiatkovej sústavy:
 
|type="{}"}
 
{ 199 }
 
 
 
{Preveďte číslo '''ABBA'''<sub>HEX</sub> z šestnástkovej do desiatkovej sústavy:
 
|type="{}"}
 
{ 43962 }
 
  
</quiz>
 
  
 
<quiz shuffleanswers=true display=simple>
 
<quiz shuffleanswers=true display=simple>
 +
{Preveďte číslo '''234'''<sub>DEC</sub> z desiatkovej do dvojkovej sústavy:
 +
|type={}}
 +
{1110 1010|11101010}
  
{Preveďte číslo '''0111 1110'''<sub>BIN</sub> z dvojkovej do šestnástkovej sústavy:
+
{Preveďte číslo '''101'''<sub>10</sub> z desiatkovej do dvojkovej sústavy:
|type="{}"}
+
|type={}}
{ 7E|7e|07E|07e }
+
{110 0101|1100101}
  
{ Preveďte číslo '''0101 0001'''<sub>2</sub> z dvojkovej do šestnástkovej sústavy:
+
{Preveďte číslo '''234'''<sub>BIN</sub>$ z dvojkovej do desiatkovej sústavy:
|type="{}"}
+
|type={}}
{ 51 }
+
{1110 1010|11101010}
  
{ Preveďte číslo '''0C3'''<sub>16</sub> z šestnástkovej do dvojkovej sústavy:
+
{Preveďte číslo '''1010 1010'''<sub>2</sub>$ z dvojkovej do desiatkovej sústavy:
|type="{}"}
+
|type={}}
{ 1100 0011|11000011 }
+
{170}
  
{ Preveďte číslo '''4B'''<sub>HEX</sub> z šestnástkovej do dvojkovej sústavy:
+
{Preveďte číslo '''234'''<sub>DEC</sub>$ z desiatkovej do šestnástkovej sústavy:
|type="{}"}
+
|type={}}
{ 1001 1011|10011011 }
+
{EA (i)|0EA (i)}
  
 +
{Preveďte číslo '''101'''<sub>10</sub>$ z desiatkovej do šestnástkovej sústavy:
 +
|type={}}
 +
{65}
  
</quiz>
+
{Preveďte číslo '''0C7'''<sub>16</sub>$ z šestnástkovej do desiatkovej sústavy:
 +
|type={}}
 +
{199}
  
 +
{Preveďte číslo '''ABBA'''<sub>HEX</sub>$ z šestnástkovej do desiatkovej sústavy:
 +
|type={}}
 +
{43962}
  
TODO:
+
{Preveďte číslo '''0111 1110'''<sub>BIN</sub>$ z dvojkovej do šestnástkovej sústavy:
 +
|type={}}
 +
{7E|7e|07E|07e}
  
* http://www.rapidtables.com/convert/number/hex-dec-bin-converter.htm
+
{Preveďte číslo '''0101 0001'''<sub>2</sub>$ z dvojkovej do šestnástkovej sústavy:
* http://calc.50x.eu/
+
|type={}}
* https://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html
+
{51}
* http://www.binaryhexconverter.com/
 
* https://www.algoritmy.net/article/80/Prevod-cisla-mezi-soustavami
 
  
'''Zložitejšie úlohy'''
+
{Preveďte číslo '''0C3'''<sub>16</sub>$ z šestnástkovej do dvojkovej sústavy:
 +
|type={}}
 +
{1100 0011|11000011}
  
1. Riešenie nasledovného problému vám pomôže ostať bdelými aj na zvyšku cvičenia. Preveďte do hexadecimálnej sústavy 12648430(dec).
+
{Preveďte číslo '''4B'''<sub>HEX</sub>$ z šestnástkovej do dvojkovej sústavy:
 +
|type={}}
 +
{1001 1011|10011011}
  
2. Vysvetlite, prečo programátori oslavujú vianoce už v októbri OCT18 (pomôcka: preveďte 18 z osmičkovej do desiatkovej sústavy).
 
 
 
3. Pre adresovanie počítačov v siet internet sa používa IPv6 adresa, ktorá
 
pozostáva z 8 skupín štvorciferných hexadecimálnych číslic oddelených dvojbodkami, napríklad
 
2001:0db8:85a3:0000:0000:8a2e:0370:7334
 
 
Sledovaním sieťovej komunikácie na podozrivom počítači pomocou binárneho analyzátora
 
sme zistili, že najčastejšie komunikuje s nasledovným serverom
 
 
0010 1010 0000 0011 : 0010 1000 1000 0000 : 0010 0001 0011 0000 : 1100 1111 0000 0101 :
 
1111 1010 1100 1110 : 1011 0000 0000 1100 : 0000 0000 0000 0000 : 0000 0000 0000 0000
 
 
Preveďte binárny tvar na hexadecimálny a pomocou služby https://ipinfo.io/
 
zistite, s kým vlastník počítača komunikoval.
 
 
 
4. V ktorej sústave je toto pravda?
 
a) 10 + 11 = 101
 
 
b) 10 + 11 = 21
 
 
 
5. Ak uvažujeme jeden bajt (8 bitov), aký rozsah čísel vieme reprezentovať? Ak najvyšší (siedmy) bit bude
 
znamienko (0 = +, 1 = -) aký bude rozsah? V doplnkovom kóde bude aký rozsah?
 
 
6. Aký je rozsah pre 32-bitové celé čísla (signed, unsigned)?
 
 
 
7. '''Bonus''' za 2 body pre prvé riešenie tejto úlohy:
 
 
Jedna z prvých expedícií na Mars tam našla zvyšky civilizácie. Z rozličných
 
artefaktov a obrázkov, ktoré tam našli, si vedci odvodili, že tvory, ktoré tu
 
žili mali podobu štvornohých bytostí s jedným chápadlom, ktoré sa na konci
 
rozvetvovalo na nezistený počet "prstov." Po ďalších hľadaniach a čiastočnej
 
analýze marťasnkého písma boli prieskumníci schopní preložiť marťanskú matematiku.
 
Našli nasledujúcu rovnicu:
 
 
5x<sup>2</sup> - 50x + 125 = 0
 
 
pri ktorej boli ako riešenia uvedené ''x = 5'' a ''x = 8''.
 
Prvý výsledok sa zdá byť správny, ale druhý nie. Medzi vedcami bol aj jeden, ktorý
 
našiel dôkazy o tom, že Marťania sa ku svojmu číselnému systému dostali postupne
 
veľmi podobne ako aj my. Čo myslíte, koľko prstov mali Marťania?
 
(Z Bent z Tau Beta Pi , Február 1956).
 
  
 +
</quiz>
  
  
 
[[Category:Základy počítačov]]
 
[[Category:Základy počítačov]]

Verzia zo dňa a času 08:28, 18. september 2017

Teoretický úvod

Podrobnejší popis a teóriu nájdete na stránke Číselné sústavy

Príklad 1: Preveďte číslo 5324110 do hexadecimálnej (šestnástkovej) sústavy.

Prev dec hex.jpg


Príklad 2: Preveďte číslo 12310 do binárnej (dvojkovej) sústavy.

Prev dec bin.jpg


Príklad 3: Záporné čísla


Priamy kód -- jeden bit (MSB) je vyhradený pre znamienko

 0 000    0               1 000    -0
 0 001    1               1 001    -1
 0 010    2               1 010    -2
 0 011    3               1 011    -3
 0 100    4               1 100    -4
 0 101    5               1 101    -5
 0 110    6               1 110    -6
 0 111    7               1 111    -7
   
 3 + (-3) = 0011 + 1011 = 1110 = -6   nOK
 5 + (-3) = 0101 + 1011 = 1 0000 = 0  nOK
 

Inverzný kód -- podobne ako priamy, MSB je znamienko

 0 000    0               1 000    -7
 0 001    1               1 001    -6
 0 010    2               1 010    -5
 0 011    3               1 011    -4
 0 100    4               1 100    -3
 0 101    5               1 101    -2
 0 110    6               1 110    -1
 0 111    7               1 111    -0
 
 
 3 + (-3) = 0011 + 1100 = 1111 = -0     OK
 5 + (-3) = 0101 + 1100 = 1 0001 = 1   nOK
 Je nutná korekcia: pripočítať CY bit k LSB
 5 + (-3) = 0101 + 1100 = 1 0001 = 0001+1 = 0010 = 2   OK
 

Doplnkový kód -- inverzný kód + 1, stále platí MSB je znamienko ale naviac funguje aritmetika

 0 000    0               1 111   -1      
 0 001    1               1 110   -2      
 0 010    2               1 101   -3      
 0 011    3               1 100   -4      
 0 100    4               1 011   -5      
 0 101    5               1 010   -6      
 0 110    6               1 001   -7      
 0 111    7               1 000   ?? => -8
   
 
 3 + (-3) = 0011 + 1101 = 1 0000 = 0     OK
 5 + (-3) = 0101 + 1101 = 1 0010 = 2     OK
-7 + (-1) = 1001 + 1111 = 1 1000 = -8

Príklady na precvičovanie

Vyplňte nasledovnú tabuľku

DEC HEX BIN
0                      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

2. Preveďte niekoľko čísel z jednej sústavy do inej podľa pokynov cvičiaceho.

3. Rozsahy Bajt, 2Bajty, 4Bajty (min, max)

4. BCD kód

5. ASCII kód

6. Záporné čísla - doplnkový kód


Vyplňte nasledovnú tabuľku

DEC HEX BIN 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

2. Preveďte niekoľko čísel z jednej sústavy do inej podľa pokynov cvičiaceho.

3. Rozsahy Bajt, 2Bajty, 4Bajty (min, max)

4. BCD kód

5. ASCII kód

6. Záporné čísla - doplnkový kód


Otestujte sa sami

Preveďte číslo 234DEC z desiatkovej do dvojkovej sústavy:

|type={}} {1110 1010|11101010


Preveďte číslo 10110 z desiatkovej do dvojkovej sústavy:

|type={}} {110 0101|1100101


Preveďte číslo 234BIN$ z dvojkovej do desiatkovej sústavy:

|type={}} {1110 1010|11101010


Preveďte číslo 1010 10102$ z dvojkovej do desiatkovej sústavy:

|type={}} {170


Preveďte číslo 234DEC$ z desiatkovej do šestnástkovej sústavy:

|type={}} {EA (i)|0EA (i)


Preveďte číslo 10110$ z desiatkovej do šestnástkovej sústavy:

|type={}} {65


Preveďte číslo 0C716$ z šestnástkovej do desiatkovej sústavy:

|type={}} {199


Preveďte číslo ABBAHEX$ z šestnástkovej do desiatkovej sústavy:

|type={}} {43962


Preveďte číslo 0111 1110BIN$ z dvojkovej do šestnástkovej sústavy:

|type={}} {7E|7e|07E|07e


Preveďte číslo 0101 00012$ z dvojkovej do šestnástkovej sústavy:

|type={}} {51


Preveďte číslo 0C316$ z šestnástkovej do dvojkovej sústavy:

|type={}} {1100 0011|11000011


Preveďte číslo 4BHEX$ z šestnástkovej do dvojkovej sústavy:

|type={}} {1001 1011|10011011