http://24secunde.com
Conversia numerelor zecimale (fractii) dintr-o baza in alta Lectia trecuta s-a ocupat de numerele intregi. Este timpul sa trecem mai departe si sa consideram numerele de forma 0,1 = 1/10 = 10-1 0,01 = 1/100 = 10-2 0,001 = 1/1000 = 10-3 0,0001 = 1/10000 = 10-4 In continuare, din motive care tin de folosirea tastaturii calculatorului, vom scrie 1/10 in loc de . 100 = 1 , aceasta egalitate este valabila pentru orice baza B. Avem: B0 = 1 pentru orice baza B (orice numar ridicat la puterea 0 este egal cu 1). 20 = 1 80 = 1 100 = 1 160 = 1
- baza este 2 (numere binare) - baza este 8 (numere octale) - baza este 10 (numere in baza zece) - baza este 16 (numere hexazecimale)
Se observa ca numere zecimale se refera la numerele care pot fi scrise sub forma de fractii (1/10) sau cu virgula. De aceea, folosirea expresiei numere zecimale pentru a denumi numerele scrise in baza 10 poate fi confuza uneori. Fie numarul zecimal 1234. Stim ca el poate fi scris sub forma urmatoare: 1234= 1*103+2*102+3*10+4 Sa vedem cum poate fi scris numarul 0,1234.
0,1234 = 0*100 + 1*10-1 + 2*10 -2 + 3*10 -3 + 4*10 -4 = 0*1 + 1*10-1 + 2*10 -2 + 3*10 -3 + 4*10 -4 = 0 + 1*10-1 + 2*10 -2 + 3*10 -3 + 4*10 -4 = 1*10-1 + 2*10 -2 + 3*10 -3 + 4*10 -4 1
http://24secunde.com Observam ca 0*B0 = 0*1 = 0 pentru orice baza B. Avem : 0*20 = 0*1 = 0 0*80 = 0*1 = 0 0*100 = 0*1 = 0 0*160 = 0*1 = 0 Putem ignora expresia 0*B0 in calculele noastre. 0,1234 = 1 * 10-1 + 2 * 10 -2 + 3 * 10 -3 + 4 * 10 -4 = 1 * 1/10 + 2 * 1/102 + 3 * 1/103 + 4 * 1/104 = 1 * 1/10 + 2 * 1/100 + 3 * 1/1000 + 4 * 1/10000 Tinem cont de faptul ca B-k = 1/Bk (pentru orice baza B si numar intreg k). Conversie din binar in zecimal 0,1110112 = 1 * 2-1 + 1 * 2-2 + 1 * 2-3 + 0 * 2-4 + 1 * 2-5 + 1 * 2-6 = 1 * 1/2 + 1 * 1/4 + 1 * 1/8 + 1 * 1/32 + 1 * 1/64 = =(32 + 16 + 8 + 2 + 1)/64 = 59/64 = 0,92187510 Conversie din octal in zecimal 0,4568 = 4 * 8-1 + 5 * 8-2 + 6 * 8-3 = 4 * 1/8 + 5 * 1/64 + 6 * 1/512 = (4 *64 + 5 * 8 + 6) /512 = 302/512 = 0,5898437510 Conversie din hexazecimal in decimal 0,E816 = E * 16-1 + 8 * 16-2 = 14 * 1/16 + 8 * 1/256 = (14 * 16 + 8)/256 = 232/256 = 0,9062510 Pentru referinta si verificare, puteti folosi linkul urmator : http://www.easysurf.cc/cnver17.htm
2
http://24secunde.com
Conversia fractiilor zecimale in alte baze Zecimal in binar – prima varianta Fie numarul zecimal 0,1. Sa vedem care este reprezentarea sa binara. Stim ca 0,110 se poate scrie astfel : 0,110 = k1* 2-1 + k2* 2-2 + k3* 2-3 + k4* 2-4 + … + kn* 2-n Cifrele k1 , k2 , k3 , …, kn pot avea doar valorile 1 si 0 in reprezentare binara. 2-1 = 1/ 2 = 0,5 2-2 = 1/ 4 = 0,25 2-3 = 1/ 8 = 0,125 2-4 = 1/ 16 = 0,0625 2-5 = 1/ 32 = 0,03125 2-6 = 1/ 64 = 0,015625 2-7 = 1/ 128 = 0,0078125 2-8 = 1/ 256 = 0.00390625 Stim ca 0,110 ≥ kn* 2-n (pentru orice n). Observam ca: 0,110 < 0,5 rezulta k1= 0 0,110 < 0,25 rezulta k2= 0 0,110 < 0,125 rezulta k3= 0 Dar, 0,110 > 0,0625 si rezulta k4= 1. Numarul binar cautat are forma 0, 0001……. . Trebuie sa continuam calculele pentru a afla toate cifrele care compun numarul. 0,1 - 0,0625 = 0,0375 Sa gasim cea mai mare putere care este cuprinsa in 0,0375. Se vede ca 0,0375 > 0,03125. Deci rezulta k5= 1. 0,0375 - 0,03125 = 0,00625 Se vede ca 0,00625 < 0,015625. Rezulta ca k6= 0. Se vede ca 0,00625 < 0,0078125. Rezulta ca k7= 0. Se vede ca 0,00625 > 0.00390625. Rezulta ca k8= 1. Se poate scrie ca 0,110 = 0,000110012 si se observa ca un numar zecimal poate sa nu aiba o reprezentare exacta in alta baza.
3
http://24secunde.com Zecimal in binar – a doua varianta A doua varianta se bazeaza pe multiplicare. 0,1 * 2 = 0,2 0,2 * 2 = 0,4 0,4 * 2 = 0,8 0,8 * 2 = 1,6 (1 este salvat ca rezultat si apoi aruncat) 0,6 * 2 = 1,2 (1 este salvat ca rezultat si apoi aruncat) 0,2 * 2 = 0,4 0,4 * 2 = 0,8 0,8 * 2 = 1,6 (1 este salvat ca rezultat si apoi aruncat) …………… Se observa natura repetitiva a transformarilor.
Numarul 0,110 = 0,000110012. Zecimal in octal Fie numarul zecimal 0,5898437510. Sa vedem care este reprezentarea sa octala. 0,58984375 * 8 = 4,71875 (pastram 4 ca rezultat si apoi il aruncam) 0,71875 * 8 = 5,75 (pastram 5 ca rezultat si apoi il aruncam) 0,75 * 8 = 6 (pastram 6 ca rezultat) Deci 0,5898437510= 4568 .
Conversii speciale Binar -> Octal (se grupeaza in grupe de 3 cifre) 0, 111 1002 = 0, 648 Binar -> Hexazecimal (se grupeaza in grupe de 4 cifre) 0, 1111 00002= 0, F016
4