» »

Pretvorba med številskimi sistemi

Pretvorba med številskimi sistemi

aljaz92 ::

Zdravo mene zanima če mi lahko nekdo razloži nekaj o številskih sistemih pri računalništvu... imam nalogo kjer morem pretvorit in šestnajstišgea v dvojiški sistem
Tole je primer ampak mi ni jasno kako se pride do takšnega rezultat če bi lahko kdo postopek prikazal.
A03(16) = (2)
A03(16) = A | 0 | 3 = 101000000011(2)

Imam pa še pbratno kjer morem pretvoriti iz dvojiškega v šestnajstiškega:
1010111(2) = (16)
1010111(2) = 0101 | 0111 = 57(16)
Tole je primer vendar bi prosil če mi lahko kdo razloži kako točno se pride do takšne rešitve.


Potem pa imam še množenje dvojiških števil:
recimo en primer ki ga morem rešit.... 1010*110


Lepo prosim če mi lahko napišete točen postopek kako priti do kakšne rešitve in hvala vsem, ki boste pomagali.

Horizontko ::

A03(16)=Ax162 + 0x16(1) + 3x 16(0) =
10x256 + 0 + 3
2563(10)
Zdaj pa 2536 v dvojiškega. (Postopek verjetno že poznaš)
2536(10) = 1281x2 + 1
1281 = 640x2 +1
640 = 320x2 + 0
320 = 160x2 + 0
160 = 80x2 +0
80 = 40x2 + 0
40 = 20x2 + 0
20 = 5x2 + 0
5 = 2x2 + 1
2 = 1x2 + 0
1 = 0x2 +1
Če bereš ostanke od spodaj navzgor dobiš 101000000011(2)

Pri tej nalogi pa moraš najprej pretvoriti v deset. nato pa v šestn.
Pretvarjanje iz dvoj. v deset. gre takole;
če imaš npr. 1110, potem si lahko (za pomoč) nad 0 napišeš 1, nad 1 napišeš 2, nad drugo enko 4, nad tretjo (iz leve proti desni seveda) pa 8. (1, 2, 4, 8, 16, 32.....) Verjetno zdaj že veš, kaj bi napisal nad četrto enko, ukolikor bi dobil št. 11110? . Zdaj pa je potrebno te napisane številke nad številom 1110 sešteti. 0 + 2 + 4 + 8. 0 je zato, ker je 0 na 1. Če bi imel 1010 bi zapisal:
0 + 2 + 0 + 8 = 2 + 8 = 10.


1010111(2) = 1 + 2 + 4 + 16 + 64 = 87(10)

Iz desetiškega sistema se v šestnajstiškega pretvarja tako, da število množiš s 16, ostanek pa zapišeš (približno tako, kot pri pretvarjanju iz desetiškega v dvojiški sistem)

87(10) = 5x16 + 7
5 = 0x16 + 5
Dobiš rezultat 57(16)

Pri množenju dveh dvojiških št. je pametno prej vedeti seštevanje teh števil.
Malo za vajo.
Imava 111011 + 1101.
111011
+ 1101
__________

Pri takih primerih vedi, da je pod vsakima seštevancema prostora le za en bit (0 ali 1). Dvojiško je 1 + 1 = 10, zato je tudi tukaj stvar enaka.
Na začetku imaš 1 + 1, kar je 10, vendar, ker je prostora le za en bit, se tista ena šteje naprej.
2 = dvojiško 10 - naprej šteješ 1, napišeš 0
3 = dv. 11 naprej šteješ 1, napišeš 0
.....
5 = dv. 101 naprej šteješ 10, napišeš 1
Napišeš vedno le enico!
Če šteješ naprej, npr. 10, potem ne pozabi, da je to v bistvu 2. Primer:
11
+ 11
11
11
11
11
____
1111
Najprej dobiš št. 5, kar je dv. 101- napišeš 1 naprej šteješ 10. Ker je 10 = 2, zdaj sešteješ 2 + 1 + 1 + 1 + 1 + 1 = 7 dv. je 111.
Nazaj k vaji.
111011
+ 1101
__________
10010000 zadnja ničla je pod enko.

Imel si za zračunati 1010*110.
1010*110 se zračuna normalno, kot npr. 24*3.

1010*110
--------
1010
10100

10100
+ 10100
-------
111100

To bi bilo pa to,
upam, da z odgovorom nisem prepozen :)

Zgodovina sprememb…

spoly24 ::

ne strinjam se s horizontkom
saj lahko na bolj preprost način
pretvoriš iz 16 --->2 z uporabe tabele
za pretvarjanje !!

technolog ::

Seveda, 16 -> 2 je džabe pretvarjat.

ker je 16 ravno dva na 4, pomeni, da je en hexa znak točno 4 binarne.

recimo A A 9 3 je enako:

A: 1010 (ponovimo dvakrat)
9: 1001
3: 0011

Če to daš skupaj, dobiš:

1010 1010 1001 0011

Simpl. Vse kar rabiš je pretvarjat enoznakovne heksa številke v binarne. V najslabšem primeru imaš kratko tabelco 15 vnosi, če tega ne znaš.

Zgodovina sprememb…

kow ::

Džabe je pretvarjati tudi 16 -> 8 (oz. 4) ali 9 -> 3. Ko to razumeš, potem ne rabiš nobene "tabele" ali "postopka".

Mipe ::

Ne rabiš tabele za pretvarjanje! Pač zapomni si, da je nula binarna nula, enka binarna enka, dvojka binarna dvojka (10) itd., ko izčrpaš števila ( 1001 = 9), sledijo črke ABCDEF (1010, 1011...) vse do 1111 (F). Skratka, 0123456789ABCDEF si sledijo v številčnem zaporedju: 0000, 0001, 0010, 0011, 0100 itd.

Šestnajstiško število pretvoriš takole, vzemimo za primer "5A1".

Prvič ločiš te črke in številke in jih ločeno pretvoriš:

5 = 0101
A = 1010
1 = 0001
Potem pa te binarne številke zlepiš skupaj, v enakem zaporedju:
5A1 = 0101 1010 0001

Pretvorba iz binarne v šestnajstiško je prav tako preprosta, vsako cifro spremeniš v štirimestno binarno število na mestu v zaporedju:

100101111110
Najprej loči po štiri bite: 1001 0111 1110
Prevedi vsako zaporedje štirih bitov v ustrezno šestnajstiško število:
1001 = 9
0111 = 7
1110 = E

In tako dobiš 97E

Simpl. Samo vedeti je treba, da za vsako šestnajstiško cifro rabiš po 4 bite.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

pretvorba iz desetiškega v dvojiški št. sestav

Oddelek: Programiranje
83444 (2407) def0r
»

iz binarne vrednosti v string

Oddelek: Programiranje
161847 (1482) Ktj
»

Številski sestavi

Oddelek: Šola
73787 (3633) Gr0unD Zer0
»

Iskanje podvojenih zaporedij

Oddelek: Programiranje
91852 (1632) Gundolf
»

vrste sistemov

Oddelek: Šola
132548 (2290) snow

Več podobnih tem