NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.

Převody mezi soustavami a matematické operace s binárními čísly

Zkratky: *a-rozsah, z-základ

Dvojková (Binární) číselná soustava

a = 0;1

z = 2

Osmičková (oktanová) soustava

a = 0-7

z = 8

Desítková (dekadická) soustava

a = 0-9

z = 10

Šestnácková (hexadecimální) soustava

a = 0-9;A-F

z = 16

Předpony

kilo 1kB = 1024B

Mega 1MB = 1024kB

Giga 1GB = 1024MB

Tera 1TB = 1024GB

Převody celých čísel z desítkové čís. soustavy do dvojkové a naopak

Číslo z desítkové soustavy do libovolné soustavy převedeme tak, že postupně dělíme desítkové číslo základem nové čísl. soustavy a sepisujeme zbytky. Poslední zbytek je nejvyššířád v nové čísl. soustavě

Př.

53D|:2
26 | 1 /\
13 | 0 |
 6 | 1 |
 3 | 0 |
 1 | 1 |
 0 | 1 |

 53D == 110101B

Zpětný převod

Při převodu z binární do desítkové soustavy násobíme jednotlivá čísla od zadu číslem vždy 2x větším než je předchozí počínaje jedničkou tzn. 1,2,4,8,16,32...

1*32 + 1*16 + 0*8 + 1*4 + 0*2 + 1*1
==
32 + 16 + 4 + 1
==
53D

Převod reálných čísel (desetinné části)

Převáděné desítkové číslo ostupně násobíme dvojkou celá část výsledku je první číslicí převedeného čísla zbytek za řádovou čárkou násobíme znovu dvojkou.

Př.

   0,|333D *2
 | 0 |666
 | 1 |332
 | 0 |664
 | 1 |328
 | 0 |656
\/ 1 |312
.........

0,010101B

Převod z desítkové do osmičkové a naopak

535O

Skládáme váhy, které když sečteme dají maximální číslo v dané soustavě tzn. 1,2,4 (1+2+4 = 7) - to samé jako v předchozím příkladu jen s omezením na 'chlívečky'

4 2 1 | 4 2 1 | 4 2 1
---------------------
1 0 1 | 0 1 1 | 1 0 1 (4*1 + 2*0 + 1*1 = 5 | 4*0 + 2*1 + 1*1 = 3 | 4*1 + 2*0 + 1*1 = 5 > 535O)
==
101011101B

Zpětný převod
4 2 1 | 4 2 1 | 4 2 1
---------------------
1 0 1 | 0 1 1 | 1 0 1

4*1 + 2*0 + 1*1 = 5 | 4*0 + 2*1 + 1*1 = 3 | 4*1 + 2*0 + 1*1 = 5 > 535O

Převod z desítkové do šestnáctkové soustavy

Skládáme váhy, které když sečteme dají maximální číslo v dané soustavě tzn. 1,2,4,8 (1+2+4+8 = 15)

AB7H - musíte si uvědomit co jsou ta písmena A = 10, B = 11, C = 12...F = 15

8 4 2 1 | 8 4 2 1 | 8 4 2 1
1 0 1 0 | 1 0 1 1 | 0 1 1 1 (8*1 + 4*0 + 2*1 + 1*0 = 10(A) | 8*1 + 4*0 + 2*1 + 1*1 = 11(B) | 8*0 + 4*1 + 2*1 + 1*1 = 7 > AB7H)
==
101010110111B

Zpětný převod je snad jasný :)

Vzájemný převod mezi šestníctkovou a osmičkovou soustavou

7345O

4 2 1 | 4 2 1 | 4 2 1 | 4 2 1
1 1 1 | 0 1 1 | 1 0 0 | 1 0 1

Teď přehodíme váhy

4 2 1 4 | 2 1 4 2 | 1 4 2 1
---------------------------
1 1 1 0 | 1 1 1 0 | 0 1 0 1
---------------------------
8 4 2 1 | 8 4 2 1 | 8 4 2 1

A teď to zase posčítáme podle nových vah

8*1 + 4*1 + 2*1 + 1*0 = 14(E) | 8*1 + 4*1 + 2*1 + 1*0 = 14(E) | 8*0 + 4*1 + 2*0 + 1*1 = 5 > **EE5H**

Zpáteční postup je stejný
8 4 2 1 | 8 4 2 1 | 8 4 2 1
---------------------------
1 1 1 0 | 1 1 1 0 | 0 1 0 1
---------------------------
4 2 1 4 | 2 1 4 2 | 1 4 2 1

Vrátíme váhy

4 2 1 | 4 2 1 | 4 2 1
---------------------
1 0 1 | 0 1 1 | 1 0 1

Kódy

  • kód je přepis pro jednoznačné přiřazení určité kombinace bitů příslušnému znaku
  • kódové slovo je kombinace bitů zobrazující znak
  • kódování je přiřazování kódových slov k určitým znakům používá se k tomu generátor kódů

kódy používané pro strojové operace

  • přímý dvojkový kód

    (+) znaménkový bit 0

    (-) znaménkový bit 1

  • dvojkový doplňkový kód - používá se pro záporná čísla

    znaménkový bit -> 1

    +45D = 0(+)|0101101 (7bitů)B

    dvojkový doplňek vyjádříme tak, že vzájemně zaměníme jedničky za nuly a nuly za jedničky a k řádu čísla přičteme jedničku

0101101
1010010
+     1
-------
(-45)1010011B

kódy pro zkrácení zápisu binárních čísel osmičkový, šestnáctkový

BCD kód (váhy 8,4,2,1)

  • binárně kódované desítkové číslo
  • každá desítková číslice je nahrazena čtyřmi bity dvojkové soustavy, číslo v BCD kódu musí mít počet bitů dělitelný čtyřmi

Aikenův kód (váhy 2,4,2,1)

  • platí, že desítkové číslice 0 až 4 mají ve čtvrtém bitu nulu a číslice 5 až 9 tam mají jedničku

Přiklad: 5 D == 0101 BCD == 1011 Aiken

Kód k z n

  • k -> počet jedniček
  • n -> délka slova (počet bitů)

Př.: 2z5 může například být 10100

ASCII kód

  • slouží pro uložení znaků v počítači
  • 1 znak zabírá jeden Bajt
  • tabulka obsahuje 256znaků

0-dolní část tabulky 0-31

  • Prvních 32znaků jsou znaky řídící (netisknutelné)

32-127

  • jsou běžná interpunkční a matematická znaménka číslice a velká a malá anglická abeceda

1-horní část tabulky 128-255

  • jsou speciální grafické symboly a znaky národních abeced
    • kód kamenických (Kam)
    • kód Latin2 (PCLat)
    • kód stránka PC 1250 (win)

Unicode

  • jeden nak ve dvou Bajtech

215 = 65 536 znaků

Aritmetické operace v dvojkovém kódu V procesoru se veškeré operace provádí nebo převádí na operaci sčítání

   Sčítání
   =======

   0+0 = 0
   0+1 = 1
   1+0 = 1
   1+1 = 10

   Př.:
   10101100
      +11010111
   --------
      110000011
   =========

   Odčítání
   ========
   - v procesoru se operace odčítání převádí na funkce sčítání
   - menšitel se převede do doplňkového kódu a potom se přičte k menšenci

   0-0 = 0
      10-1 = 1
   1-0 = 1
   1-1 = 0

   Př.
   11001100
      -10101101 => 01010010
       --------  | +      1
   11001100  | --------
   01010011  | 01010011
   -------   | ========
(1)00100011 -> pokud přesáhnu u *odčítání* rozsah čísel (8bitů) jednička se škrtá => (X)00100011

Stručně Hardware


 

Všechny články v sekci
Hardware
Článek pro vás napsal David Jančík
Avatar
Uživatelské hodnocení:
8 hlasů
Autor je vášnivý programátor. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.
Aktivity