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

Hardware PC Hardware 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ě


 

  Aktivity (1)

Článek pro vás napsal David Jančík [sczdavos]
Avatar
Autor je vášnivý programátor v .NET C# a PHP. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.

Jak se ti líbí článek?
Celkem (7 hlasů) :
55555


 


Miniatura
Všechny články v sekci
Hardware

 

 

Komentáře

Avatar
Člen
Člen
Avatar
Člen:

Thx pomohlo :)

Odpovědět 14.9.2014 10:57
...
Avatar
Lukáš Křehula
Redaktor
Avatar
Lukáš Křehula:

Prý, že se v roce 98 zavedl nový systém kde platí, že
jeden kilobajt (kB) = 1000 bajtů &
jeden kibibajt (KiB) = 1024 bajtů
Nevím co je na tom pravdy, ale možný to je.

 
Odpovědět  +2 14.9.2014 11:41
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na Lukáš Křehula
Filip Šohajek:

Ano, skutečně je to pravda. Tato norma není moc populární, ale je pravdivá. Konkrétně je to dodatek k normě IEC 60027-2

 
Odpovědět 14.9.2014 12:08
Avatar
David Novák
Tým ITnetwork
Avatar
Odpovídá na Lukáš Křehula
David Novák:

V anglicky mluvících zemích se (hlavně mezi odborníky) běžně používá KiB, etc..
U nás v česku se to moc neujalo no.. ;)

Odpovědět 28.1.2015 16:24
Chyba je mezi klávesnicí a židlí.
Avatar
mkub
Redaktor
Avatar
Odpovídá na Lukáš Křehula
mkub:

je to dane tym, ze kapacita diskovych zariadeni sa neudava v 2n, ale v 10n, cize 1KB nie je 1024 bajtov, ale iba 1000 bajtov,
preto sa doplnili este dalsie jednotky na rozlisenie, ci sa pouziva 1024, alebo 1000

 
Odpovědět 28.1.2015 16:56
Avatar
Jiří Janeček (Johnny):

Není ten výsledek u odčítání u dvojkového kódu špatně? Nemělo by to vyjít 11111? I na calculator.net mi to tak vyšlo

 
Odpovědět 30.11.2015 21:27
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.