Mga sistema ng numero. Paglipat mula sa isang sistema patungo sa isa pa. Pag-convert ng mga numero sa iba't ibang sistema ng numero na may solusyon

Nakatagpo namin ang binary number system kapag nag-aaral ng mga disiplina sa computer. Pagkatapos ng lahat, ito ay batay sa sistemang ito na ang processor at ilang mga uri ng pag-encrypt ay binuo. Mayroong mga espesyal na algorithm para sa pagsulat ng isang decimal na numero sa binary system at vice versa. Kung alam mo ang prinsipyo ng pagbuo ng isang sistema, hindi ito magiging mahirap na patakbuhin ito.

Ang prinsipyo ng pagbuo ng isang sistema ng mga zero at isa

Ang binary number system ay binuo gamit ang dalawang digit: zero at isa. Bakit ang mga partikular na numerong ito? Ito ay dahil sa prinsipyo ng pagbuo ng mga signal na ginagamit sa processor. Sa pinakamababang antas nito, ang signal ay tumatagal lamang ng dalawang halaga: false at true. Samakatuwid, kaugalian na tukuyin ang kawalan ng isang senyas, "maling," sa pamamagitan ng zero, at ang presensya nito, "totoo," ng isa. Ang kumbinasyong ito ay madaling ipatupad sa teknikal. Ang mga numero sa binary system ay nabuo sa parehong paraan tulad ng sa decimal system. Kapag naabot ng isang digit ang pinakamataas na limitasyon nito, ire-reset ito sa zero at magdaragdag ng bagong digit. Ang prinsipyong ito ay ginagamit upang lumipat sa isang sampu sa decimal system. Kaya, ang mga numero ay binubuo ng mga kumbinasyon ng mga zero at isa, at ang kumbinasyong ito ay tinatawag na "binary number system".

Pagre-record ng numero sa system

Sa decimal

Sa binary

Sa decimal

Sa binary

Paano magsulat ng isang binary na numero bilang isang decimal na numero?

May mga online na serbisyo na nagko-convert ng mga numero sa binary system at vice versa, ngunit mas mahusay na magagawa mo ito sa iyong sarili. Kapag isinalin, ang binary system ay tinutukoy ng subscript 2, halimbawa, 101 2. Ang bawat numero sa anumang sistema ay maaaring katawanin bilang isang kabuuan ng mga numero, halimbawa: 1428 = 1000 + 400 + 20 + 8 - sa decimal system. Ang numero ay kinakatawan din sa binary. Kunin natin arbitrary na numero 101 at isaalang-alang ito. Mayroon itong 3 digit, kaya inayos namin ang numero sa ganitong paraan: 101 2 =1×2 2 +0×2 1 +1×2 0 =4+1=5 10, kung saan ang index 10 ay nagpapahiwatig sistemang desimal.

Paano magsulat ng isang pangunahing numero sa binary?

Napakadaling i-convert sa binary number system sa pamamagitan ng paghahati ng numero sa dalawa. Ito ay kinakailangan upang hatiin hanggang sa ito ay posible na ganap na makumpleto. Halimbawa, kunin ang numerong 871. Nagsisimula kaming hatiin, tinitiyak na isulat ang natitira:

871:2=435 (natitira 1)

435:2=217 (natitira 1)

217:2=108 (natitira 1)

Ang sagot ay isinulat ayon sa mga resultang natitira sa direksyon mula dulo hanggang simula: 871 10 =101100111 2. Maaari mong suriin ang kawastuhan ng mga kalkulasyon gamit ang reverse translation na inilarawan kanina.

Bakit kailangan mong malaman ang mga panuntunan sa pagsasalin?

Ang binary number system ay ginagamit sa karamihan ng mga disiplina na may kaugnayan sa microprocessor electronics, coding, transmission at encryption ng data, sa iba't ibang direksyon programming. Ang kaalaman sa mga pangunahing kaalaman sa pagsasalin mula sa anumang sistema patungo sa binary ay makakatulong sa programmer na bumuo ng iba't ibang microcircuits at kontrolin ang pagpapatakbo ng processor at iba pang katulad na mga sistema sa pamamagitan ng programming. Ang sistema ng binary number ay kinakailangan din para sa pagpapatupad ng mga pamamaraan para sa pagpapadala ng mga packet ng data sa mga naka-encrypt na channel at paglikha ng mga proyekto ng software ng client-server batay sa mga ito. Sa isang kurso sa computer science sa paaralan, ang mga pangunahing kaalaman sa pag-convert sa binary system at vice versa ay ang pangunahing materyal para sa pag-aaral ng programming sa hinaharap at paglikha ng mga simpleng programa.

Ang pag-convert ng mga numero mula sa isang sistema ng numero patungo sa isa pa ay isang mahalagang bahagi ng aritmetika ng makina. Isaalang-alang natin ang mga pangunahing tuntunin ng pagsasalin.

1. Para sa pagsasalin binary na numero sa decimal kinakailangan na isulat ito sa anyo ng isang polynomial, na binubuo ng mga produkto ng mga digit ng isang numero at ang kaukulang kapangyarihan ng 2, at kalkulahin ito ayon sa mga patakaran ng decimal arithmetic:

Kapag nagsasalin, maginhawang gamitin ang talahanayan ng mga kapangyarihan ng dalawa:

Talahanayan 4. Mga kapangyarihan ng numero 2

n (degree)

Halimbawa.

2. Upang i-convert ang isang octal na numero sa isang decimal, ito ay kinakailangan upang isulat ito bilang isang polynomial na binubuo ng mga produkto ng mga digit ng numero at ang kaukulang kapangyarihan ng numero 8, at kalkulahin ito ayon sa mga patakaran ng decimal aritmetika:

Kapag nagsasalin, maginhawang gamitin ang talahanayan ng mga kapangyarihan ng walo:

Talahanayan 5. Mga kapangyarihan ng bilang 8

n (degree)

Halimbawa. I-convert ang numero sa sistema ng decimal na numero.

3. Upang i-convert ang isang hexadecimal na numero sa isang decimal, kinakailangan na isulat ito sa anyo ng isang polynomial, na binubuo ng mga produkto ng mga digit ng numero at ang kaukulang kapangyarihan ng numero 16, at kalkulahin ito ayon sa mga tuntunin ng decimal aritmetika:

Kapag nagsasalin, ito ay maginhawang gamitin blitz ng mga kapangyarihan ng numero 16:

Talahanayan 6. Mga kapangyarihan ng bilang 16

n (degree)

Halimbawa. I-convert ang numero sa sistema ng decimal na numero.

4. Upang i-convert ang isang decimal na numero sa binary system, dapat itong hatiin nang sunud-sunod sa 2 hanggang sa ang natitira ay mas mababa sa o katumbas ng 1 ay nananatili Ang isang numero sa binary system ay nakasulat bilang isang pagkakasunud-sunod ng huling resulta ng paghahati at ang mga natitira mula sa ang dibisyon sa reverse order.

Halimbawa. I-convert ang numero sa binary number system.

5. Upang i-convert ang isang decimal na numero sa octal system ito ay dapat na sunud-sunod na hatiin ng 8 hanggang sa may natitira pang mas mababa sa o katumbas ng 7. Ang isang numero sa octal system ay isinulat bilang isang pagkakasunod-sunod ng mga digit ng huling resulta ng paghahati at ang mga nalalabi sa dibisyon sa reverse order.

Halimbawa. I-convert ang numero sa octal number system.

6. Upang i-convert ang isang decimal na numero sa hexadecimal system ito ay dapat na sunud-sunod na hatiin ng 16 hanggang sa may natitira pang mas mababa sa o katumbas ng 15. Ang isang numero sa hexadecimal ay isinusulat bilang isang pagkakasunud-sunod ng mga digit ng huling resulta ng paghahati at ang mga natitira sa dibisyon sa reverse order.

Halimbawa. I-convert ang numero sa hexadecimal number system.

Ang mga pagpapatakbo ng aritmetika sa mga positional number system ay ginagawa gamit ang isang algorithm. Kaya, ang pagdaragdag ng mga binary na numero ay nangyayari ayon sa klasikal na "column" algorithm na may paglilipat ng isang numero na isang multiple ng dalawa sa pamamagitan ng isa sa susunod na digit.

Isaalang-alang natin ang algorithm na ito gamit ang halimbawa ng dalawang binary na numero 1010101 2 at 110111 2:

Ang resulta ng karagdagan ay mukhang 10001100 2. Suriin natin ang resulta ng karagdagan sa pamamagitan ng pag-convert ng lahat ng mga numero sa sistema ng decimal na numero:

1010101 2 =85 10 , 110111 2 =55 10 , 10001100 2 =140 10 , 85 10 +55 10 =140 10 .

Ang binary system, na siyang batayan ng computer arithmetic, ay napakahirap at hindi maginhawa para sa paggamit ng tao. Samakatuwid, ang mga programmer ay gumagamit ng dalawang multiple ng binary number system: octal at hexadecimal. Sa kaso ng hexadecimal, nawawala ang mga Arabic numeral at ang unang anim na malalaking titik ay ginagamit bilang mga numero alpabetong Latin. Ang mga halimbawa ng pagsulat ng mga natural na numero mula 1 hanggang 16 sa apat na sistema ng numero ay inilalagay sa Talahanayan 2.

Talahanayan 2. Mga halimbawa ng pagsulat ng mga natural na numero mula 1 hanggang 16

sa apat na sistema ng numero

Mula sa Talahanayan 2 Makikita na sa binary system, ang pag-record ng mga numero ng ikalawang walo (mula 8 hanggang 15) ay naiiba sa pagtatala ng unang walo (mula 0 hanggang 7) sa pamamagitan ng pagkakaroon ng isang yunit sa ikaapat (kanan). ) digit. Ang algorithm para sa pag-convert ng mga binary na numero sa mga octal na numero "sa pamamagitan ng mga triad" ay batay dito. Upang mailapat ang algorithm na ito, kailangan mong hatiin ang binary number sa triple ng mga digit (nagbibilang mula sa kanan) at magsulat ng octal digit sa halip na bawat triple:

10101101 2 → 10 101 101 → 255 8 .

Ang pinakakaliwang triple ay maaaring hindi kumpleto (tulad ng sa halimbawa);

Siguraduhin nating tama ang algorithm:

10101101 2 → 1*2 7 +1*2 5 +1*2 3 +2*2 1 +1*2 0 =173 10 ;

255 8 →2*2 6 +5*2 3 +5*2 0 =173 10 .

Upang i-convert ang mga numero mula sa octal system patungo sa binary, ginagamit ang reverse algorithm: ang mga octal na digit ay pinapalitan ng triplets binary digit(kung kinakailangan, ang mga nawawalang zero ay idinaragdag sa kaliwa):

325 8 → 3 2 5 → 11 010 101 → 11010101 2 .

Upang i-convert ang mga numero mula sa binary patungo sa hexadecimal, ang algorithm na "sa pamamagitan ng tetrad" ay ginagamit. Ang string ng binary digits ay nahahati sa quadruples at hexadecimal digit ang isusulat sa halip:

10101101 2 → 1010 1101 → AD 16.

Ang reverse algorithm ay gumagana nang katulad: sa halip na hexadecimal digit, quadruple binary digit ang pinapalitan.

Mas madaling i-convert mula octal sa hexadecimal at pabalik gamit ang binary system:

D5 16 → D 5 →1101 0101 → 11010101 2 → 11 010 101 → 325 8 .

Kapag nagsasagawa ng mga gawain sa pagdaragdag ng mga numero mula sa iba't ibang mga sistema ng numero, kailangan nilang i-convert sa isang sistema ng numero. Pinakamabuting gamitin ang sistema kung saan dapat ipakita ang resulta.

Gawain 14. (Demo ng Task A6 na bersyon 2004)

Kalkulahin ang halaga ng kabuuan sa decimal notation:

10 2 +10 8 +10 16 = ? 10

Solusyon.

I-convert natin ang lahat ng numero sa decimal notation:

10 2 +10 8 +10 16 = (1*2 1 +0*2 0) + (1*8 1 +0*8 0) + (1*16 1 +0*16 0) = 2+8+16=26 10 .

Sagot: 26.

Gawain 15.

Hanapin ang kabuuan x+y kung x=1110101 2 , y=1011011 2 . Ipahayag ang iyong sagot sa octal notation.

Solusyon.

Hanapin natin ang kabuuan: 1110101 2 + 1011011 2:

1110101 2 + 1011011 2 = 11010000 2

I-convert natin ang resultang numero mula sa binary number system sa octal:

11 010 000 → 320 8 .

Sagot: 320.

Gawain 16.(Task B1 ng 2004 demo)

Sa isang sistema ng numero na may ilang base, ang numerong 12 ay isinusulat bilang 110. Hanapin ang base na ito.

Solusyon.

Tukuyin natin ang kinakailangang base sa pamamagitan ng n. Batay sa mga tuntunin sa pagsulat ng mga numero sa mga positional na notasyon 110 n =n 2 +n 1 +0. Gumawa tayo ng equation: n 2 +n=12, hanapin ang mga ugat: n 1 =-4, n 2 =3. Ang ugat n 1 = -4 ay hindi angkop, dahil ang base ng sistema ng numero, ayon sa kahulugan, ay isang natural na bilang na mas malaki kaysa sa isa. Suriin natin kung ang ugat n=3 ay angkop:

110 3 =1*3 2 +1*3 1 +0=9+3=12 10

Sagot: 3.

Mag-ehersisyo17 .

Sa klase 1111 mayroong 2 babae at 1100 2 lalaki. Ilang estudyante ang nasa klase?

Solusyon.

1111 2 =1*2 3 +1*2 2 +1*2 1 +1*2 0 →8+4+2+1=15 10 .

1100 2 =1*2 3 +1*2 2 +0*2 1 +0*2 0 →8+4=12 10

15 10 +12 10 =27 10

Sagot: Mayroong 27 mag-aaral sa klase.

Mag-ehersisyo18 .

Mayroong 100 puno ng prutas sa hardin, kung saan 33 ay puno ng mansanas, 22 ay peras, 16 ay plum at 5 ay seresa. Sa anong sistema ng numero binibilang ang mga puno?

Solusyon.

100 x = 33 x + 22 x + 16 x + 5 x

1*x 2 =3*x 1 +3*x 0 +2*x 1 +2*x 0 + 1*x 1 +6*x 0 +5*x 0

x 2 =3x+3+2x+2+ 1x+6+5

D=b 2 -4ac=36+4*16=36+64=100

x 1.2 =
= (6±10)/2

x 1 = - 2 – hindi nakakatugon sa kahulugan ng problema,

x 2 = 8 – ang base ng gustong sistema ng numero.

Sagot: ang mga puno ay binibilang sa octal number system.

Mag-ehersisyo19 .

Pinaghihiwalay ng mga kuwit, sa pataas na pagkakasunud-sunod, ipahiwatig ang lahat ng mga base ng mga sistema ng numero kung saan ang numero 17 ay nagtatapos sa 2.

Solusyon.

Ang huling digit sa isang numero ay ang natitira kapag ang numero ay hinati sa base ng sistema ng numero. Dahil 17-2=15, ang mga kinakailangang base ng mga sistema ng numero ay magiging mga divisors ng 15, ito ay: 3, 5, 15.

Suriin natin ang ating sagot sa pamamagitan ng pagrepresenta ng numero 17 sa kaukulang sistema ng numero:

1. Ordinal na pagbibilang sa iba't ibang sistema ng numero.

SA modernong buhay ginagamit namin mga sistema ng pagpoposisyon notation, iyon ay, mga system kung saan ang numero na tinutukoy ng isang digit ay nakasalalay sa posisyon ng digit sa notation ng numero. Samakatuwid, sa hinaharap ay pag-uusapan lamang natin ang tungkol sa kanila, na tinatanggal ang terminong "posisyonal".

Upang matutunan kung paano i-convert ang mga numero mula sa isang system patungo sa isa pa, mauunawaan natin kung paano nangyayari ang sequential recording ng mga numero gamit ang halimbawa ng decimal system.

Dahil mayroon kaming sistema ng decimal na numero, mayroon kaming 10 simbolo (digit) upang bumuo ng mga numero. Nagsisimula kaming magbilang: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Tapos na ang mga numero. Pinapataas namin ang bit depth ng numero at ni-reset ang hindi bababa sa makabuluhang digit: 10. Pagkatapos ay tinataasan namin muli ang mababang digit hanggang sa mawala ang lahat ng digit: 11, 12, 13, 14, 15, 16, 17, 18, 19. Kami dagdagan ang mataas na digit ng 1 at i-reset ang mababang digit: 20. Kapag ginamit namin ang lahat ng mga digit para sa parehong mga digit (nakukuha namin ang numero 99), muli naming dinadagdagan ang kapasidad ng digit ng numero at i-reset ang umiiral na mga digit: 100. At kaya sa.

Subukan nating gawin ang parehong sa ika-2, ika-3 at ika-5 na sistema (ipinakilala namin ang notasyon para sa ika-2 sistema, para sa ika-3, atbp.):

0 0 0 0
1 1 1 1
2 10 2 2
3 11 10 3
4 100 11 4
5 101 12 10
6 110 20 11
7 111 21 12
8 1000 22 13
9 1001 100 14
10 1010 101 20
11 1011 102 21
12 1100 110 22
13 1101 111 23
14 1110 112 24
15 1111 120 30

Kung ang sistema ng numero ay may base na higit sa 10, kailangan nating magpasok ng mga karagdagang character; Halimbawa, para sa decimal system, bilang karagdagan sa sampung digit, kailangan namin ng dalawang titik ( at ):

0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10
11
12 10
13 11
14 12
15 13

2. Pagsasalin mula sa sistema ng decimal na numero sa anumang iba pa.

Upang isalin ang isang positibong integer decimal na numero sa isang sistema ng numero na may ibang base, kailangan mong hatiin ang numerong ito sa base. Hatiin muli ang resultang quotient sa base, at higit pa hanggang sa mas mababa ang quotient kaysa sa base. Bilang resulta, isulat sa isang linya ang huling quotient at lahat ng natitira, simula sa huli.

Halimbawa 1. I-convert natin ang decimal na numero 46 sa binary number system.

Halimbawa 2. I-convert natin ang decimal number na 672 sa octal number system.

Halimbawa 3. I-convert natin ang decimal na numerong 934 sa hexadecimal number system.

3. Conversion mula sa anumang sistema ng numero sa decimal.

Upang matutunan kung paano i-convert ang mga numero mula sa anumang iba pang sistema sa decimal, suriin natin ang karaniwang notasyon para sa isang decimal na numero.
Halimbawa, ang decimal na numero 325 ay 5 units, 2 tens at 3 hundreds, i.e.

Ang sitwasyon ay eksaktong pareho sa iba pang mga sistema ng numero, tanging kami ay magpaparami hindi sa 10, 100, atbp., ngunit sa pamamagitan ng mga kapangyarihan ng base ng sistema ng numero. Halimbawa, kunin natin ang numerong 1201 in sistemang ternary Pagtutuos. Bilangin natin ang mga digit mula kanan pakaliwa simula sa zero at isipin ang ating numero bilang kabuuan ng mga produkto ng isang digit ng tatlo hanggang sa kapangyarihan ng digit ng numero:

Ito ang decimal notation ng aming numero, i.e.

Halimbawa 4. I-convert natin sa decimal number system octal na numero 511.

Halimbawa 5. I-convert natin sa decimal number system hexadecimal na numero 1151.

4. Conversion mula sa binary system patungo sa system na may base na "power of two" (4, 8, 16, atbp.).

Upang i-convert ang isang binary number sa isang numero na may base na "power of two", kinakailangan na hatiin ang binary sequence sa mga grupo ayon sa bilang ng mga digit na katumbas ng kapangyarihan mula kanan papuntang kaliwa at palitan ang bawat grupo ng kaukulang digit. bagong sistema Pagtutuos.

Halimbawa, I-convert natin ang binary number 1100001111010110 sa octal system. Upang gawin ito, hahatiin namin ito sa mga pangkat ng 3 character simula sa kanan (mula noong ), at pagkatapos ay gamitin ang talahanayan ng pagsusulatan at palitan ang bawat pangkat ng bagong numero:

Natutunan namin kung paano bumuo ng talahanayan ng pagsusulatan sa hakbang 1.

0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7

Yung.

Halimbawa 6. I-convert natin ang binary number na 1100001111010110 sa hexadecimal.

0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

5. Conversion mula sa isang system na may base na "power of two" (4, 8, 16, atbp.) sa binary.

Ang pagsasaling ito ay katulad ng nauna, ginawa sa reverse side: Pinapalitan namin ang bawat digit ng isang pangkat ng mga binary digit mula sa lookup table.

Halimbawa 7. I-convert natin ang hexadecimal number C3A6 sa binary number system.

Upang gawin ito, palitan ang bawat digit ng numero ng isang pangkat ng 4 na numero (mula noong ) mula sa talahanayan ng pagsusulatan, dagdagan ang pangkat ng mga zero sa simula kung kinakailangan: