Converter ng mga numero mula sa decimal patungo sa binary. Pag-convert ng mga numero mula sa isang sistema ng numero patungo sa isa pa. Pag-convert ng maliliit na integer mula sa decimal patungo sa binary sa iyong ulo

Tandaan 1

Kung nais mong i-convert ang isang numero mula sa isang sistema ng numero patungo sa isa pa, kung gayon mas maginhawang i-convert muna ito sa sistema ng decimal na numero, at pagkatapos lamang i-convert ito mula sa sistema ng decimal na numero sa anumang iba pang sistema ng numero.

Mga panuntunan para sa pag-convert ng mga numero mula sa anumang sistema ng numero sa decimal

SA teknolohiya ng kompyuter, gamit ang machine arithmetic, isang mahalagang papel ang ginagampanan ng conversion ng mga numero mula sa isang sistema ng numero patungo sa isa pa. Ibinibigay namin sa ibaba ang mga pangunahing panuntunan para sa mga naturang pagbabago (pagsasalin).

    Kapag nagko-convert ng binary na numero sa isang decimal, kinakailangan na kumatawan sa binary na numero bilang isang polynomial, ang bawat elemento nito ay kinakatawan bilang produkto ng isang digit ng numero at ang kaukulang kapangyarihan ng base number, sa sa kasong ito$2$, at pagkatapos ay kailangan mong kalkulahin ang polynomial gamit ang mga panuntunan ng decimal arithmetic:

    $X_2=A_n \cdot 2^(n-1) + A_(n-1) \cdot 2^(n-2) + A_(n-2) \cdot 2^(n-3) + ... + A_2 \cdot 2^1 + A_1 \cdot 2^0$

Larawan 1. Talahanayan 1

Halimbawa 1

I-convert ang numerong $11110101_2$ sa sistema ng decimal na numero.

Solusyon. Gamit ang ibinigay na talahanayan ng $1$ kapangyarihan ng batayang $2$, kinakatawan namin ang numero bilang isang polynomial:

$11110101_2 = 1 \cdot 27 + 1 \cdot 26 + 1 \cdot 25 + 1 \cdot 24 + 0 \cdot 23 + 1 \cdot 22 + 0 \cdot 21 + 1 \cdot 20 = 128 + 616 + 32 + 0 + 4 + 0 + 1 = 245_(10)$

    Upang i-convert ang isang numero mula sa octal number system patungo sa decimal na sistema ng numero, kailangan mong katawanin ito bilang isang polynomial, ang bawat elemento nito ay kinakatawan bilang produkto ng isang digit ng numero at ang kaukulang kapangyarihan ng base number, sa ito kaso $8$, at pagkatapos ay kailangan mong kalkulahin ang polynomial ayon sa mga patakaran ng decimal arithmetic:

    $X_8 = A_n \cdot 8^(n-1) + A_(n-1) \cdot 8^(n-2) + A_(n-2) \cdot 8^(n-3) + ... + A_2 \cdot 8^1 + A_1 \cdot 8^0$

Larawan 2. Talahanayan 2

Halimbawa 2

I-convert ang numerong $75013_8$ sa sistema ng decimal na numero.

Solusyon. Gamit ang ibinigay na talahanayan ng $2$ kapangyarihan ng batayang $8$, kinakatawan namin ang numero bilang isang polynomial:

$75013_8 = 7\cdot 8^4 + 5 \cdot 8^3 + 0 \cdot 8^2 + 1 \cdot 8^1 + 3 \cdot 8^0 = 31243_(10)$

    Upang i-convert ang isang numero mula sa hexadecimal sa decimal, kailangan mong katawanin ito bilang isang polynomial, ang bawat elemento ay kinakatawan bilang produkto ng isang digit ng numero at ang katumbas na kapangyarihan ng base number, sa kasong ito $16$, at pagkatapos kailangan mong kalkulahin ang polynomial ayon sa mga patakaran ng decimal arithmetic:

    $X_(16) = A_n \cdot 16^(n-1) + A_(n-1) \cdot 16^(n-2) + A_(n-2) \cdot 16^(n-3) + . .. + A_2 \cdot 16^1 + A_1 \cdot 16^0$

Larawan 3. Talahanayan 3

Halimbawa 3

I-convert ang numerong $FFA2_(16)$ sa decimal number system.

Solusyon. Gamit ang ibinigay na talahanayan ng $3$ kapangyarihan ng batayang $8$, kinakatawan namin ang numero bilang isang polynomial:

$FFA2_(16) = 15 \cdot 16^3 + 15 \cdot 16^2 + 10 \cdot 16^1 + 2 \cdot 16^0 =61440 + 3840 + 160 + 2 = 65442_(10)$

Mga panuntunan para sa pag-convert ng mga numero mula sa sistema ng decimal na numero patungo sa isa pa

  • Upang mag-convert ng isang numero mula sa sistemang desimal Kapag nagkalkula sa binary, dapat itong hatiin nang sunud-sunod sa $2$ hanggang may natitira na mas mababa sa o katumbas ng $1$. Ang isang numero sa binary system ay kinakatawan bilang isang pagkakasunud-sunod ng huling resulta ng paghahati at ang mga nalalabi mula sa paghahati sa reverse order.

Halimbawa 4

I-convert ang numerong $22_(10)$ sa binary number system.

Solusyon:

Larawan 4.

$22_{10} = 10110_2$

  • Upang i-convert ang isang numero mula sa sistema ng decimal na numero patungo sa octal, dapat itong hatiin nang sunud-sunod sa $8$ hanggang may natitira na mas mababa sa o katumbas ng $7$. Ang isang numero sa sistema ng octal na numero ay kinakatawan bilang isang sequence ng mga digit ng huling resulta ng dibisyon at ang mga nalalabi mula sa dibisyon sa reverse order.

Halimbawa 5

I-convert ang numerong $571_(10)$ sa octal number system.

Solusyon:

Larawan 5.

$571_{10} = 1073_8$

  • Upang i-convert ang isang numero mula sa sistema ng decimal na numero sa hexadecimal system dapat itong sunud-sunod na hatiin ng $16$ hanggang may natitira na mas mababa sa o katumbas ng $15$. Ang isang numero sa hexadecimal system ay kinakatawan bilang isang sequence ng mga digit ng huling resulta ng division at ang natitira sa division sa reverse order.

Halimbawa 6

I-convert ang numerong $7467_(10)$ sa hexadecimal number system.

Solusyon:

Larawan 6.

$7467_(10) = 1D2B_(16)$

    Upang ma-convert ang isang wastong fraction mula sa isang sistema ng decimal na numero sa isang non-decimal na sistema ng numero, kinakailangan na sunud-sunod na i-multiply ang fractional na bahagi ng numero na kino-convert sa base ng system kung saan kailangan itong i-convert. Fraction sa bagong sistema ipapakita sa anyo ng buong bahagi ng mga akda, simula sa una.

    Halimbawa: $0.3125_((10))$ sa octal number system ay magmumukhang $0.24_((8))$.

    Sa kasong ito, maaari kang makatagpo ng isang problema kapag ang pangwakas decimal ay maaaring tumutugma sa isang infinite (pana-panahong) fraction sa non-decimal number system. Sa kasong ito, ang bilang ng mga digit sa fraction na kinakatawan sa bagong system ay depende sa kinakailangang katumpakan. Dapat ding tandaan na ang mga integer ay nananatiling integer, at ang mga wastong fraction ay nananatiling fraction sa anumang sistema ng numero.

Mga panuntunan para sa pag-convert ng mga numero mula sa isang binary number system patungo sa isa pa

  • Upang i-convert ang isang numero mula sa binary number system sa octal, dapat itong hatiin sa mga triad (triple of digits), simula sa hindi bababa sa makabuluhang digit, kung kinakailangan, pagdaragdag ng mga zero sa nangungunang triad, pagkatapos ay palitan ang bawat triad ng katumbas na octal digit. ayon sa Talahanayan 4.

Larawan 7. Talahanayan 4

Halimbawa 7

I-convert ang numerong $1001011_2$ sa octal number system.

Solusyon. Gamit ang Talahanayan 4, kino-convert namin ang numero mula sa binary number system sa octal:

$001 001 011_2 = 113_8$

  • Upang i-convert ang isang numero mula sa binary number system sa hexadecimal, dapat itong hatiin sa mga tetrad (apat na digit), simula sa hindi bababa sa makabuluhang digit, kung kinakailangan, pagdaragdag ng mga zero sa pinaka makabuluhang tetrad, pagkatapos ay palitan ang bawat tetrad ng katumbas na octal digit ayon sa Talahanayan 4.

Upang mabilis na ma-convert ang mga numero mula sa sistema ng decimal na numero sa binary system, kailangan mong magkaroon ng isang mahusay na kaalaman sa mga numerong "2 sa kapangyarihan". Halimbawa, 2 10 =1024, atbp. Papayagan ka nitong lutasin ang ilang halimbawa ng pagsasalin nang literal sa ilang segundo. Isa sa mga gawaing ito ay Problema A1 mula sa USE demo 2012. Maaari mong, siyempre, tumagal ng mahaba at nakakapagod na oras upang hatiin ang isang numero sa "2". Ngunit mas mahusay na magpasya nang naiiba, na nagse-save ng mahalagang oras sa pagsusulit.

Ang pamamaraan ay napaka-simple. Ang buod nito ay ito: Kung ang numerong kailangang i-convert mula sa decimal system ay katumbas ng numerong "2 sa kapangyarihan", kung gayon ang numerong ito sa binary system ay naglalaman ng bilang ng mga zero na katumbas ng kapangyarihan. Nagdaragdag kami ng "1" sa harap ng mga zero na ito.

  • I-convert natin ang numero 2 mula sa decimal system. 2=2 1 . Samakatuwid, sa binary system, ang isang numero ay naglalaman ng 1 zero. Inilalagay namin ang "1" sa harap at makuha ang 10 2.
  • I-convert natin ang 4 mula sa decimal system. 4=2 2 . Samakatuwid, sa binary system, ang isang numero ay naglalaman ng 2 zero. Inilalagay namin ang "1" sa harap at makakuha ng 100 2.
  • I-convert natin ang 8 mula sa decimal system. 8=2 3 . Samakatuwid, sa binary system, ang isang numero ay naglalaman ng 3 zero. Inilalagay namin ang "1" sa harap at nakakuha ng 1000 2.


Katulad din para sa iba pang mga numero "2 sa kapangyarihan".

Kung ang numero na kailangang ma-convert ay mas mababa sa numerong "2 sa kapangyarihan" ng 1, kung gayon sa binary system ang numerong ito ay binubuo lamang ng mga yunit, ang bilang nito ay katumbas ng kapangyarihan.

  • I-convert natin ang 3 mula sa decimal system. 3=2 2 -1. Samakatuwid, sa binary system, ang isang numero ay naglalaman ng 2 isa. Nakakuha kami ng 112.
  • I-convert natin ang 7 mula sa decimal system. 7=2 3 -1. Samakatuwid, sa binary system, ang isang numero ay naglalaman ng 3 isa. Nakukuha namin ang 111 2.

Sa figure, ang mga parisukat ay nagpapahiwatig ng binary na representasyon ng numero, at ang kulay rosas na kulay sa kaliwa ay nagpapahiwatig ng decimal na representasyon.


Ang pagsasalin ay katulad para sa iba pang mga numero "2 sa kapangyarihan-1".

Malinaw na ang pagsasalin ng mga numero mula 0 hanggang 8 ay maaaring gawin nang mabilis o sa pamamagitan ng paghahati, o simpleng alamin sa puso ang kanilang representasyon sa binary system. Ibinigay ko ang mga halimbawang ito upang maunawaan mo ang prinsipyo ang pamamaraang ito at ginamit ito upang isalin ang higit pang "mga kahanga-hangang numero", halimbawa, upang isalin ang mga numerong 127,128, 255, 256, 511, 512, atbp.

Maaari kang makatagpo ng mga ganitong problema kapag kailangan mong i-convert ang isang numero na hindi katumbas ng numerong "2 sa kapangyarihan", ngunit malapit dito. Maaaring ito ay mas malaki o mas mababa sa 2 sa kapangyarihan. Ang pagkakaiba sa pagitan ng isinaling numero at ang numerong "2 to the power" ay dapat maliit. Halimbawa, hanggang 3. Ang representasyon ng mga numero mula 0 hanggang 3 sa binary system ay kailangan lang malaman nang walang pagsasalin.

Kung ang numero ay mas malaki kaysa sa , pagkatapos ay lutasin ang ganito:

Una naming i-convert ang numerong "2 sa kapangyarihan" sa binary system. At pagkatapos ay idinagdag namin dito ang pagkakaiba sa pagitan ng numerong "2 sa kapangyarihan" at ang numerong isinasalin.

Halimbawa, i-convert natin ang 19 mula sa decimal system. Ito ay mas malaki kaysa sa bilang na "2 sa kapangyarihan" ng 3.

16=2 4 . 16 10 =10000 2 .

3 10 =11 2 .

19 10 =10000 2 +11 2 =10011 2 .

Kung ang numero ay mas mababa sa numerong "2 sa kapangyarihan", kung gayon mas maginhawang gamitin ang numerong "2 sa kapangyarihan-1". Malutas namin ito tulad nito:

Una naming i-convert ang numerong "2 sa kapangyarihan-1" sa binary system. At pagkatapos ay ibawas namin mula dito ang pagkakaiba sa pagitan ng numerong "2 sa kapangyarihan ng 1" at ang numerong isinasalin.

Halimbawa, i-convert natin ang 29 mula sa decimal system. Ito ay mas malaki kaysa sa bilang na "2 sa kapangyarihan-1" ng 2. 29=31-2.

31 10 =11111 2 .

2 10 =10 2 .

29 10 =11111 2 -10 2 =11101 2

Kung ang pagkakaiba sa pagitan ng numerong isinasalin at ang numerong "2 sa kapangyarihan" ay higit sa tatlo, maaari mong hatiin ang numero sa mga bahagi nito, i-convert ang bawat bahagi sa binary system at idagdag.

Halimbawa, i-convert ang numerong 528 mula sa decimal system. 528=512+16. Isinasalin namin ang 512 at 16 nang hiwalay.
512=2 9 . 512 10 =1000000000 2 .
16=2 4 . 16 10 =10000 2 .
Ngayon, idagdag natin ito sa isang column:

Layunin ng aralin:

  • ulitin ang materyal na pinag-aralan sa paksa ng sistema ng numero;
  • matutong mag-convert ng isang numero mula sa decimal system patungo sa anumang iba pang positional number system at vice versa;
  • master ang mga prinsipyo ng pag-convert ng mga numero mula sa isang sistema patungo sa isa pa;
  • bumuo ng lohikal na pag-iisip.

Sa panahon ng mga klase

Sa simula ng aralin, isang maikling pagsusuri at pagsuri ng takdang-aralin.

Sa anong anyo ipinakita ang numerical na impormasyon sa memorya ng computer?

Ano ang ginagamit ng mga sistema ng numero?

Anong mga uri ng sistema ng numero ang alam mo? Magbigay ng sarili mong mga halimbawa.

Paano naiiba ang mga positional system sa mga non-positional system?

Ang layunin ng aming aralin ay upang matutunan kung paano i-convert ang isang numero mula sa decimal system patungo sa anumang iba pang positional number system at vice versa. Ngunit titingnan muna natin kung paano mo magagawa

kumakatawan sa anumang hindi negatibong integer:

SA mga positional system ang halaga ng pagsulat ng isang integer ay tinutukoy ng susunod na tuntunin: hayaan ang a n a n-1 a n-2 …a 1 a 0 ang pagtatala ng numerong A, at i ang mga numero, pagkatapos

kung saan ang p ay isang integer na mas malaki sa 1, na tinatawag na base ng sistema ng numero

Upang, para sa isang naibigay na p, anumang hindi negatibong integer ay maaaring isulat ayon sa formula (1) at, higit pa rito, sa isang natatanging paraan, mga numerong halaga ang iba't ibang mga digit ay dapat na magkakaibang mga integer na kabilang sa segment mula 0 hanggang p-1.

1) Decimal system

mga numero: 0,1,2,3,4,5,6,7,8,9

numero 5735 = 5 10 3 +7 10 2 +3 10 1 +8 10 0

2) Sistemang ternary

mga numero: 0,1,2

numero 201 3 = 2·3 2 +0·3 1 +1·3 0

Tandaan: ang subscript sa isang numero ay nagpapahiwatig ng base ng sistema ng numero kung saan nakasulat ang numero. Para sa sistema ng decimal na numero, hindi kailangang isulat ang index.

Representasyon ng mga negatibo at fractional na numero:

Sa lahat ng positional system, ang ‘–’ sign ay ginagamit para magsulat ng mga negatibong numero, tulad ng sa decimal system. Ang kuwit ay ginagamit upang paghiwalayin ang integer na bahagi ng isang numero mula sa fractional na bahagi. Ang halaga ng entry a n a n-1 a n-2 …a 1 a 0 , a -1 a -2 …a m-2 a m-1 a m ng numero A ay tinutukoy ng formula, na isang generalization ng formula (1):

75.6 = 7·10 1 +5·10 0 +6·10 –1

–2.314 5 = –(2 5 0 +3 5 –1 +1 5 –2 +4 5 –3)

Pag-convert ng mga numero mula sa isang arbitrary na sistema ng numero sa decimal:

Dapat itong maunawaan na kapag nagsasalin ng isang numero mula sa isang sistema ng numero patungo sa isa pa, ang dami ng halaga ng numero ay hindi nagbabago, ngunit ang anyo lamang ng pagsulat ng numero ay nagbabago, tulad ng kapag nagsasalin ng pangalan ng isang numero, halimbawa, mula sa Ruso sa Ingles.

Ang pag-convert ng mga numero mula sa isang arbitrary na sistema ng numero sa decimal ay ginagawa sa pamamagitan ng direktang pagkalkula gamit ang formula (1) para sa mga integer at formula (2) para sa mga fraction.

Pag-convert ng mga numero mula sa sistema ng decimal na numero sa isang arbitrary na sistema ng numero.

Ang pag-convert ng isang numero mula sa decimal system sa isang sistema na may base p ay nangangahulugan ng paghahanap ng mga coefficient sa formula (2). Minsan madaling gawin simpleng pagpili. Halimbawa, sabihin nating kailangan mong i-convert ang numerong 23.5 sa octal system. Madaling makita na 23.5 = 16+7+0.5 = 2·8+7+4/8 = 2·8 1 +7·8 0 +4·8 –1 =27.48. Ito ay malinaw na ang sagot ay hindi palaging masyadong halata. Sa pangkalahatan, ang paraan ng pag-convert ng integer at fractional na bahagi ng isang numero nang hiwalay ay ginagamit.

Upang mag-convert ng mga integer, ginagamit ang sumusunod na algorithm (nakuha batay sa formula (1)):

1. Hanapin ang quotient at remainder kapag hinahati ang isang numero sa p. Ang natitira ay ang susunod na digit ai (j=0,1,2...) ng numero sa bagong sistema ng numero.

2. Kung ang quotient ay katumbas ng zero, pagkatapos ay ang pagsasalin ng numero ay nakumpleto, kung hindi, ilalapat namin ang point 1 sa quotient.

Tandaan 1. Ang mga digit ai sa notasyon ng numero ay binibilang mula kanan hanggang kaliwa.

Tandaan 2. Kung p>10, kinakailangan na ipakilala ang notasyon para sa mga numero na may mga numerical na halaga na mas malaki sa o katumbas ng 10.

I-convert ang numero 165 sa septal number system.

165:7 = 23 (natitira 4) => a 0 = 4

23:7 = 3 (natitira 2) => a 1 = 2

3:7 = 0 (natitira 3) => a 2 = 3

Isulat natin ang resulta: a 2 a 1 a 0 , i.e. 3247.

Kapag nasuri gamit ang formula (1), titiyakin namin na tama ang pagsasalin:

3247=3·7 2 +2·7 1 +4·7 0 =3·49+2·7+4 = 147+14+4 = 165.

Upang i-convert ang mga fractional na bahagi ng mga numero, isang algorithm na nakuha batay sa formula (2) ay ginagamit:

1. I-multiply ang fractional na bahagi ng bilang sa p.

2. Ang integer na bahagi ng resulta ay ang susunod na digit ng am (m = –1, –2, –3 ...) ng pagsulat ng numero sa bagong sistema ng numero. Kung ang fractional na bahagi ng resulta ay zero, pagkatapos ay ang pagsasalin ng numero ay nakumpleto, kung hindi, ilalapat namin ang hakbang 1 dito.

Tandaan 1. Ang mga digit na a m sa notasyon ng numero ay nakaayos mula kaliwa hanggang kanan sa pataas na pagkakasunod-sunod ganap na halaga m.

Tandaan 2. Karaniwan ang bilang ng mga fractional digit sa bagong entry ang mga numero ay limitado nang maaga. Nagbibigay-daan ito sa iyong magsagawa ng tinatayang pagsasalin na may ibinigay na katumpakan. Sa kaso ng mga walang katapusang fraction, tinitiyak ng naturang paghihigpit ang finiteness ng algorithm.

I-convert ang numerong 0.625 sa binary number system.

0.625 2 = 1.25 (integer na bahagi 1) => a -1 =1

0.25 2 = 0.5 (integer part 0) => a- 2 = 0

0.5 2 = 1.00 (integer part 1) => a- 3 = 1

Kaya 0.62510 = 0.1012

Kapag nasuri gamit ang formula (2), titiyakin namin na tama ang pagsasalin:

0.1012=1·2 -1 +0·2- 2 +1·2 -3 =1/2+1/8 = 0.5+0.125 = 0.625.

I-convert ang numerong 0.165 sa quaternary number system, nililimitahan ito sa apat na quaternary digit.

0.165 4 = 0.66 (integer na bahagi 0) => a -1 =0

0.66 4 = 2.64 (integer na bahagi 2) => a -2 = 2

0.64 4 = 2.56 (integer na bahagi 2) => a -3 = 2

0.56 4 = 2.24 (integer part 2) => a -4 = 2

Kaya 0.16510" 0.02224

Gumawa tayo ng pabalik na pagsasalin upang matiyak na ang ganap na error ay hindi lalampas sa 4–4:

0.02224 = 0·4 -1 +2·4 -2 +2·4 -3 +2·4 -4 = 2/16+2/64+2/256 = 1/8+1/32+1/ 128 = 21/128 = 0.1640625

|0,1640625–0,165| = 0,00094 < 4–4 = 0,00390625

Pag-convert ng mga numero mula sa isang arbitrary system patungo sa isa pa

Sa kasong ito, kailangan mo munang i-convert ang numero sa decimal system, at pagkatapos ay mula sa decimal system sa kinakailangang isa.

Ang isang espesyal na paraan ay ginagamit upang i-convert ang mga numero para sa mga system na may maraming base.

Hayaan ang p at q ang mga base ng dalawang sistema ng numero. Tatawagin natin ang mga sistemang ito ng mga sistema ng numero na may maraming base kung p = qn o q = pn, kung saan ang n ay isang natural na numero. Kaya, halimbawa, ang mga sistema ng numero na may mga base 2 at 8 ay maramihang mga sistema ng base ng numero.

Hayaan ang p = qn at kailangan mong i-convert ang isang numero mula sa isang sistema ng numero na may base q sa isang sistema ng numero na may base p. Hatiin natin ang integer at fractional na bahagi ng numero sa mga pangkat ng n sunud-sunod na nakasulat na mga digit sa kaliwa at kanan ng decimal point. Kung ang bilang ng mga digit sa integer na bahagi ng isang numero ay hindi isang multiple ng n, pagkatapos ay kailangan mong idagdag ang kaukulang bilang ng mga zero sa kaliwa. Kung ang bilang ng mga digit sa fractional na bahagi ng isang numero ay hindi multiple ng n, kung gayon ang mga zero ay idinaragdag sa kanan. Ang bawat pangkat ng mga digit ay isang numero sa lumang sistema numero ay tumutugma sa isang digit ng isang numero sa bagong sistema ng numero.

I-convert natin ang 1100001.111 2 sa quaternary number system.

Sa pamamagitan ng pagdaragdag ng mga zero at pagpili ng mga pares ng mga numero, makakakuha tayo ng 01100001.11102.

Ngayon, isalin natin ang bawat pares ng mga digit nang hiwalay, gamit ang seksyong Pagsasalin ng mga numero mula sa isang arbitrary system patungo sa isa pa.

Kaya, 1100001.1112 = 01100001.11102 = 1201.324.

Ipagpalagay natin ngayon na kailangan nating lumipat mula sa isang sistema na may mas malaking base q sa isang sistema na may mas maliit na base p, i.e. q = pn. Sa kasong ito, ang isang digit ng isang numero sa lumang sistema ng numero ay tumutugma sa n digit ng isang numero sa bagong sistema ng numero.

Halimbawa: Suriin natin ang nakaraang pagsasalin ng isang numero.

1201,324 = 1100001,11102=1100001,1112

Sa hexadecimal system mayroong mga digit na may mga numerical na halaga 10,11,12, 13,14,15. Upang italaga ang mga ito, gamitin ang unang anim na titik ng alpabetong Latin na A, B, C, D, E, F.

Narito ang isang talahanayan ng mga numero mula 0 hanggang 16, na nakasulat sa mga sistema ng numero na may mga base na 10, 2, 8 at 16.

Numero sa decimal system 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Sa octal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20
Sa binary 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000
Sa hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F 10

Maaari ka ring gumamit ng mga maliliit na digit upang magsulat ng mga hexadecimal na digit. mga titik a-f.

Halimbawa: I-convert natin ang numerong 110101001010101010100.11 2 sa hexadecimal number system.

Gamitin natin ang multiplicity ng mga base ng mga sistema ng numero (16=2 4). Ipangkat natin ang mga numero sa apat, pagdaragdag ng kinakailangang bilang ng mga zero sa kaliwa at kanan

000110101001010101010100,1100 2

at, sa pagsuri sa talahanayan, makukuha natin ang: 1A9554,C 16

Konklusyon:

Aling sistema ng numero ang pinakamahusay na pagsusulatan ng mga numero ay isang bagay ng kaginhawahan at tradisyon. Mula sa teknikal na pananaw, maginhawang gamitin ang binary system sa isang computer, dahil gumagamit lamang ito ng dalawang digit 0 at 1 upang magtala ng isang numero, na maaaring katawanin ng dalawang madaling makilalang estado na "walang signal" at "mayroong isang senyales."

Sa kabaligtaran, ito ay hindi maginhawa para sa isang tao na makitungo sa mga binary na notasyon ng mga numero dahil sa katotohanan na ang mga ito ay mas mahaba kaysa sa mga decimal at mayroong maraming mga umuulit na mga numero sa mga ito. Samakatuwid, kung kinakailangan, gumana sa mga representasyon ng makina ng mga numero, gumamit ng octal o hexadecimal na mga sistema ng numero. Ang mga base ng mga system na ito ay integer na kapangyarihan ng dalawa, at samakatuwid ang mga numero ay madaling ma-convert mula sa mga system na ito sa binary at vice versa.

Isulat ang takdang-aralin:

a) Isulat ang petsa ng kapanganakan ng lahat ng miyembro ng iyong pamilya sa iba't ibang sistema ng numero.

b) I-convert ang mga numero mula sa binary patungo sa octal at hexadecimal, at pagkatapos ay suriin ang mga resulta sa pamamagitan ng pagsasagawa ng mga reverse conversion:

a) 1001111110111.011 2;

Ang mga kumukuha ng Unified State Exam at higit pa...

Kakaiba na sa mga aralin sa computer science sa mga paaralan ay karaniwang ipinapakita nila sa mga mag-aaral ang pinaka-kumplikado at hindi maginhawang paraan upang mai-convert ang mga numero mula sa isang sistema patungo sa isa pa. Ang pamamaraang ito ay binubuo ng sunud-sunod na paghahati ng orihinal na numero sa base at pagkolekta ng mga natitira mula sa dibisyon sa reverse order.

Halimbawa, kailangan mong i-convert ang numerong 810 10 sa binary:

Isinulat namin ang resulta sa reverse order mula sa ibaba hanggang sa itaas. Lumalabas na 81010 = 11001010102

Kung kailangan mong mag-convert sa binary system, medyo malalaking numero, pagkatapos ay ang hagdan ng paghahati ay tumatagal sa laki ng isang maraming palapag na gusali. At paano mo makokolekta ang lahat ng mga isa at mga zero at hindi makaligtaan ang isa?

Kasama sa programa ng Unified State Exam sa computer science ang ilang mga gawain na nauugnay sa pag-convert ng mga numero mula sa isang system patungo sa isa pa. Karaniwan, ito ay isang conversion sa pagitan ng octal at hexadecimal system at binary. Ito ang mga seksyon A1, B11. Ngunit mayroon ding mga problema sa iba pang mga sistema ng numero, tulad ng sa seksyon B7.

Upang magsimula, alalahanin natin ang dalawang talahanayan na mabuting malaman nang buong puso para sa mga pipili ng computer science bilang kanilang propesyon sa hinaharap.

Talaan ng mga kapangyarihan ng numero 2:

2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10
2 4 8 16 32 64 128 256 512 1024

Ito ay madaling makuha sa pamamagitan ng pagpaparami ng dating numero sa 2. Kaya, kung hindi mo matandaan ang lahat ng mga numerong ito, ang iba ay hindi mahirap makuha sa iyong isip mula sa mga naaalala mo.

Talaan ng mga binary na numero mula 0 hanggang 15 na may representasyong hexadecimal:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0 1 2 3 4 5 6 7 8 9 A B C D E F

Ang mga nawawalang halaga ay madaling kalkulahin sa pamamagitan ng pagdaragdag ng 1 sa mga kilalang halaga.

Integer na conversion

Kaya, magsimula tayo sa pamamagitan ng direktang pag-convert sa binary system. Kunin natin ang parehong numero 810 10. Kailangan nating i-decompose ang numerong ito sa mga terminong katumbas ng kapangyarihan ng dalawa.

  1. Hinahanap namin ang kapangyarihan ng dalawang pinakamalapit sa 810 at hindi hihigit dito. Ito ay 2 9 = 512.
  2. Ibawas ang 512 sa 810, makakakuha tayo ng 298.
  3. Ulitin ang hakbang 1 at 2 hanggang sa wala nang 1 o 0 na natitira.
  4. Nakuha namin ito ng ganito: 810 = 512 + 256 + 32 + 8 + 2 = 2 9 + 2 8 + 2 5 + 2 3 + 2 1.
Pagkatapos ay mayroong dalawang pamamaraan, maaari mong gamitin ang alinman sa mga ito. Gaano kadaling makita na sa anumang sistema ng numero ang base nito ay palaging 10. Ang parisukat ng base ay palaging magiging 100, ang kubo 1000. Iyon ay, ang antas ng base ng sistema ng numero ay 1 (isa), at mayroong kasing daming zero sa likod nito gaya ng degree.

Paraan 1: Ayusin ang 1 ayon sa hanay ng mga indicator ng mga termino. Sa aming halimbawa, ito ay 9, 8, 5, 3 at 1. Ang mga natitirang lugar ay maglalaman ng mga zero. Kaya, nakuha namin ang binary na representasyon ng numero 810 10 = 1100101010 2. Ang mga yunit ay inilalagay sa ika-9, ika-8, ika-5, ika-3 at ika-1 na lugar, na binibilang mula kanan pakaliwa mula sa zero.

Paraan 2: Isulat natin ang mga termino bilang kapangyarihan ng dalawa sa ilalim ng bawat isa, simula sa pinakamalaki.

810 =

Ngayon, idagdag natin ang mga hakbang na ito nang magkasama, tulad ng pagtiklop ng fan: 1100101010.

Iyon lang. Kasabay nito, ang problema "ilang mga yunit ang nasa binary notation ng numero 810?"

Ang sagot ay kasing dami ng mga termino (kapangyarihan ng dalawa) sa representasyong ito. Ang 810 ay mayroong 5 sa kanila.

Ngayon ang halimbawa ay mas simple.

I-convert natin ang numero 63 sa 5-ary number system. Ang pinakamalapit na kapangyarihan ng 5 hanggang 63 ay 25 (square 5). Ang isang cube (125) ay magiging marami na. Iyon ay, ang 63 ay nasa pagitan ng parisukat ng 5 at ng kubo. Pagkatapos ay pipiliin natin ang koepisyent para sa 5 2. Ito ay 2.

Nakukuha natin ang 63 10 = 50 + 13 = 50 + 10 + 3 = 2 * 5 2 + 2 * 5 + 3 = 223 5.

At, sa wakas, napakadaling pagsasalin sa pagitan ng 8 at hexadecimal system. Dahil ang kanilang base ay isang kapangyarihan ng dalawa, ang pagsasalin ay awtomatikong ginagawa, sa pamamagitan lamang ng pagpapalit ng mga numero ng kanilang binary na representasyon. Para sa octal system, ang bawat digit ay pinapalitan ng tatlong binary digit, at para sa hexadecimal system, apat. Sa kasong ito, kailangan ang lahat ng nangungunang zero, maliban sa pinakamahalagang digit.

I-convert natin ang numerong 547 8 sa binary.

547 8 = 101 100 111
5 4 7

Isa pa, halimbawa 7D6A 16.

7D6A 16 = (0)111 1101 0110 1010
7 D 6 A

I-convert natin ang numerong 7368 sa hexadecimal system Una, isulat ang mga numero sa triplets, at pagkatapos ay hatiin ang mga ito sa quadruples mula sa dulo: 736 8 = 111 011 110 = 1 1101 1110 = 1DE 16. I-convert natin ang numerong C25 16 sa octal system. Una, isinusulat namin ang mga numero sa apat, at pagkatapos ay hatiin ang mga ito sa tatlo mula sa dulo: C25 16 = 1100 0010 0101 = 110 000 100 101 = 6045 8. Ngayon tingnan natin ang pag-convert pabalik sa decimal. Hindi mahirap, ang pangunahing bagay ay hindi magkamali sa mga kalkulasyon. Pinapalawak namin ang numero sa isang polynomial na may mga kapangyarihan ng base at mga coefficient para sa kanila. Pagkatapos ay i-multiply namin at idagdag ang lahat. E68 16 = 14 * 16 2 + 6 * 16 + 8 = 3688. 732 8 = 7 * 8 2 + 3*8 + 2 = 474 .

Pag-convert ng mga Negatibong Numero

Dito kailangan mong isaalang-alang na ang numero ay ipapakita sa karagdagang code. Upang i-convert ang isang numero sa karagdagang code, kailangan mong malaman ang panghuling sukat ng numero, iyon ay, kung ano ang gusto naming magkasya dito - sa isang byte, sa dalawang byte, sa apat. Ang pinakamahalagang digit ng isang numero ay nangangahulugang ang tanda. Kung mayroong 0, kung gayon ang numero ay positibo, kung 1, kung gayon ito ay negatibo. Sa kaliwa, ang numero ay pupunan ng sign digit. Hindi namin isinasaalang-alang ang mga hindi naka-sign na numero;

Upang i-convert ang isang negatibong numero sa binary's complement code, kailangan mong mag-convert positibong numero sa binary system, pagkatapos ay baguhin ang mga zero sa isa at ang mga isa sa mga zero. Pagkatapos ay magdagdag ng 1 sa resulta.

Kaya, i-convert natin ang numero -79 sa binary system. Dadalhin tayo ng numero ng isang byte.

Kino-convert namin ang 79 sa binary system, 79 = 1001111. Nagdaragdag kami ng mga zero sa kaliwa sa laki ng byte, 8 bits, nakukuha namin ang 01001111. Binago namin ang 1 sa 0 at 0 sa 1. Nakukuha namin ang 10110000. Nagdaragdag kami ng 1 sa ang resulta, makukuha natin ang sagot na 10110001. Sa daan, sinasagot namin ang tanong ng Unified State Exam na "ilang unit ang naroroon binary na representasyon mga numero -79?” Ang sagot ay 4.

Ang pagdaragdag ng 1 sa kabaligtaran ng isang numero ay nag-aalis ng pagkakaiba sa pagitan ng mga representasyong +0 = 00000000 at -0 = 11111111. Sa complement code ng dalawa, ang mga ito ay isusulat na kapareho ng 00000000.

Pag-convert ng mga fractional na numero

Ang mga fractional na numero ay kino-convert sa baligtad na paraan ng paghahati ng mga buong numero sa base, na tiningnan namin sa pinakadulo simula. Iyon ay, gamit ang sequential multiplication sa pamamagitan ng isang bagong base na may koleksyon ng mga buong bahagi. Ang mga bahagi ng integer na nakuha sa panahon ng pagpaparami ay kinokolekta, ngunit hindi nakikilahok sa mga sumusunod na operasyon. Mga fraction lang ang pinaparami. Kung ang orihinal na numero ay mas malaki sa 1, pagkatapos ay ang integer at fractional na mga bahagi ay isasalin nang hiwalay at pagkatapos ay pinagdikit.

I-convert natin ang numerong 0.6752 sa binary system.

0 ,6752
*2
1 ,3504
*2
0 ,7008
*2
1 ,4016
*2
0 ,8032
*2
1 ,6064
*2
1 ,2128

Ang proseso ay maaaring ipagpatuloy sa mahabang panahon hanggang sa makuha natin ang lahat ng mga zero sa fractional na bahagi o ang kinakailangang katumpakan ay makamit. Huminto muna tayo sa 6th sign.

Lumalabas na 0.6752 = 0.101011.

Kung ang numero ay 5.6752, kung gayon binary ito ay magiging 101.101011.

Kapag nagko-convert ng mga numero mula sa sistema ng decimal na numero sa anumang iba pa, ang buo at fractional na mga bahagi ay palaging isinasalin nang hiwalay (ayon sa iba't ibang mga panuntunan).

Pagsasalin ng buong bahagi

Upang ma-convert ang isang numero mula sa sistema ng decimal na numero sa anumang iba pa, kailangan mong gawin integer division ang orihinal na numero batay sa sistema ng numero kung saan kailangang i-convert ang numero. Sa kasong ito, ang natitira sa dibisyon at ang quotient ay mahalaga. Ang quotient ay dapat na hatiin ng base hanggang 0 ang natitira Pagkatapos nito, ang lahat ng natitira ay dapat na nakasulat sa reverse order - ito ang magiging numero sa bagong sistema ng numero.

Halimbawa, ang pag-convert ng numero 25 mula sa sistema ng decimal na numero sa binary system ay magiging ganito:

Ang pagsusulat ng mga natitira sa reverse order, makakakuha tayo ng 25 10 =11001 2.

Kung iisipin mo, madali mong mapapansin na kapag nagko-convert ng ganap na anumang numero sa binary number system, ang pinakahuling natitira (iyon ay, ang pinakaunang digit sa resulta) ay palaging magiging katumbas ng pinakahuling quotient, na naging mas mababa sa base ng sistema ng numero kung saan isinasalin namin ang numero. Samakatuwid, ang paghahati ay madalas na itinitigil bago maging ang kusyente katumbas ng zero- sa sandaling ang partikular ay nagiging mas mababa sa base. Halimbawa:

Ang conversion mula sa decimal na sistema ng numero sa anumang iba pang sistema ng numero ay isinasagawa ayon sa eksaktong parehong mga patakaran. Narito ang isang halimbawa ng pag-convert ng 393 10 sa hexadecimal number system:

Isinulat ang mga natitira sa reverse order, makakakuha tayo ng 393 10 =189 16.

Kailangan mong maunawaan na ang mga natitira ay nakuha sa sistema ng decimal na numero. Kapag hinahati sa 16, ang mga nalalabi ay maaaring lumitaw hindi lamang mula 0 hanggang 9, kundi pati na rin ang mga nalalabi mula 10 hanggang 15. Ang bawat natitira ay palaging eksaktong isang digit sa sistema ng numero kung saan ginawa ang pagsasalin.

Halimbawa, kung, kapag nagko-convert sa hexadecimal number system, natanggap mo ang mga sumusunod na natitira (nakasulat sa pagkakasunud-sunod na dapat nilang isulat sa numero): 10, 3, 15, 7, pagkatapos ay sa hexadecimal number system ang sequence na ito ng ang mga natitira ay tumutugma sa numerong A3F7 16 (ang ilan ay nagkamali silang isulat ang numero bilang 103157 16 - malinaw na ito ay isang ganap na naiibang numero, at na kung gagawin mo ito, ito ay lalabas na sa anumang paraan hexadecimal na numero hindi lilitaw ang mga numero A hanggang F).

Fractional na pagsasalin

Kapag nagsasalin ng fractional na bahagi, sa kaibahan sa pagsasalin ng isang buong bahagi, hindi mo kailangang hatiin, ngunit i-multiply sa base ng sistema ng numero kung saan tayo nagko-convert. Sa kasong ito, ang mga buong bahagi ay itinatapon sa bawat oras, at ang mga bahaging praksyonal ay muling pinaparami. Sa pamamagitan ng pagkolekta ng buong bahagi sa pagkakasunud-sunod kung saan nakuha ang mga ito, nakukuha namin ang fractional na bahagi ng numero sa kinakailangang sistema Pagtutuos.

Ang isang multiplication operation ay nagbibigay ng eksaktong isa karagdagang tanda sa sistema ng numero kung saan isinasagawa ang pagsasalin.

Sa kasong ito, mayroong dalawang kundisyon para sa pagkumpleto ng proseso:

1) bilang resulta ng susunod na multiplikasyon nakatanggap ka ng zero sa fractional na bahagi. Malinaw na kahit gaano mo i-multiply ang zero na ito, mananatili pa rin itong zero. Nangangahulugan ito na ang numero ay na-convert mula sa decimal na sistema ng numero sa eksaktong kinakailangan.

2) hindi lahat ng mga numero ay maaaring isalin nang tumpak. Sa kasong ito, karaniwan itong isinasalin nang may katumpakan. Sa kasong ito, tinutukoy muna nila kung gaano karaming mga decimal na lugar ang kakailanganin - ito ang dami ng beses na kailangang isagawa ang pagpaparami.

Narito ang isang halimbawa ng pag-convert ng numero 0.39 10 sa binary number system. Katumpakan - 8 digit (sa kasong ito, ang katumpakan ng pagsasalin ay pinipili nang arbitraryo):

Kung isusulat natin ang buong bahagi sa direktang pagkakasunud-sunod, makakakuha tayo ng 0.39 10 =0.01100011 2 .

Hindi na kailangang isulat ang pinakaunang zero (na-cross out sa asul sa figure) - dahil hindi ito tumutukoy sa fractional na bahagi, ngunit sa buong bahagi. Ang ilang mga tao ay nagkakamali sa pagsulat ng zero na ito pagkatapos ng decimal point kapag isinusulat ang resulta.

Ito ang magiging hitsura ng conversion ng numerong 0.39 10 sa hexadecimal number system. Katumpakan - 8 mga numero sa kasong ito, ang katumpakan ay muling pinili nang arbitraryo:

Kung isusulat natin ang buong bahagi sa direktang pagkakasunud-sunod, makakakuha tayo ng 0.39 10 =0.63D700A3 16.

Kasabay nito, malamang na napansin mo na ang buong bahagi kapag pinarami ay nakuha sa sistema ng decimal na numero. Ang mga bahaging ito ng integer na nakuha kapag isinasalin ang fractional na bahagi ng isang numero ay dapat bigyang-kahulugan nang eksakto sa parehong paraan tulad ng mga natitira kapag isinasalin ang buong bahagi ng isang numero. Iyon ay, kung, kapag na-convert sa hexadecimal number system, ang mga bahagi ng integer ay nakuha sa sumusunod na pagkakasunud-sunod: 3, 13, 7, 10, kung gayon ang katumbas na numero ay magiging katumbas ng 0.3D7A 16 (at hindi 0.313710 16, tulad ng ilan. minsan maling sumulat).

Pag-convert ng mga numero na may integer at fractional na bahagi

Upang i-convert ang isang numero mula sa isang integer sa praksyonal na bahagi, kailangan mong isalin nang hiwalay ang buong bahagi, at hiwalay ang fractional na bahagi, at samakatuwid ay isulat ang dalawang bahaging ito nang magkasama.

Halimbawa, 25.39 10 =11001.01100011 2 (mga pagsasalin ng integer at fractional na bahagi - tingnan sa itaas).

Pag-convert ng maliliit na integer mula sa decimal patungo sa binary sa iyong ulo

Mula noong nagtatrabaho kasama iba't ibang sistema Sa calculus, lalo na kapag bumubuo ng mga programa, madalas na kailangang isalin ang maliliit na integer, kung gayon, sa pangkalahatan, makatuwiran na kabisaduhin ang unang 16 na numero (mula 0 hanggang 15).

Ngunit kung malalaman mo kung gaano kadali ang pag-convert ng mga maliliit na integer mula 0 hanggang 15 mula sa sistema ng decimal na numero patungo sa binary, maaari mo lamang kalkulahin ang isang makabuluhang bahagi ng talahanayan sa iyong ulo sa tuwing kailangan mo ito. Gawin ang operasyong ito ng maraming beses, at sa isang punto ikaw mismo ay hindi mauunawaan kung kabisado mo na ang talahanayan o nagkalkula pa rin.

Kaya, upang i-convert ang isang maliit na positibong integer mula 0 hanggang 15 mula sa decimal patungo sa binary, ang unang bagay na kailangan mong maunawaan ay ang bawat posisyon sa binary na numero tumutugma sa isang kapangyarihan ng dalawa. Kasabay nito, ang mga kapangyarihan ng dalawa para sa mga posisyon mula 0 hanggang 3 ay napakadaling tandaan - ito ang mga numero 1, 2, 4 at 8:

At ang numero 10 ay 2 plus 8:

Buweno, ang numero 0 ay isang kasalanan na hindi dapat tandaan, dahil upang makuha ito hindi mo kailangang magdagdag ng anuman.