Дарси 19. Татбиқи системаҳои ҳисоб дар Python - Технологияи иттилоотӣ — синфи 10
Чор система
Мо ба ададҳои даҳӣ одат кардаем: онҳо аз рақамҳои 0, 1, 2, …, 9 сохта мешаванд. Дар Python бо ададҳои се системаи дигар низ кор карда мумкин: дуӣ (bin), ҳаштӣ (oct), шонздаҳӣ (hex). Ададҳои дар ин системаҳо навишташударо аз даҳӣ бо пешванд фарқ мекунанд:
Система Асос Пешванд даҳӣ 10 – дуӣ 2 0b ё 0Bҳаштӣ 8 0o ё 0Oшонздаҳӣ 16 0x ё 0X
Рақамҳо: даҳӣ – 0…9; дуӣ – 0 ва 1; ҳаштӣ – 0…7; шонздаҳӣ – 0…9 ва A…F.
Пешванд ба Python мегӯяд, ки адад дар кадом система навишта шудааст ва онро ба таври худкор ба даҳӣ мегардонад. 0b ва 0B – як чиз; ҳарфҳои A–F низ калон ё хурд буда метавонанд.
Шонздаҳӣ: ба ҷойи 10, 11, 12, 13, 14, 15 ҳарфҳои A, B, C, D, E, F навишта мешаванд. hex(255) ҳарфҳоро хурд менависад: 0xff.
Шакли кушода ва пӯшида
Дар системаи асоси q q ададро ҳамчун ҷамъи дараҷаҳои менависанд – ин аст; навишти оддии рақамҳо – . Масалан, дар системаи дуӣ:
навбатӣ Дарси 20. Кори амалӣ оид ба табдилдиҳии ададҳо аз системаи даҳӣ ба дигар системаҳо 1 соат
q
шакли кушода
шакли пӯшида
101,01 2 = 1 ⋅ 2 2 + 0 ⋅ 2 1 + 1 ⋅ 2 0 + 0 ⋅ 2 − 1 + 1 ⋅ 2 − 2 . 101{,}01_2=1\cdot2^2+0\cdot2^1+1\cdot2^0+0\cdot2^{-1}+1\cdot2^{-2}. 101 , 0 1 2 = 1 ⋅ 2 2 + 0 ⋅ 2 1 + 1 ⋅ 2 0 + 0 ⋅ 2 − 1 + 1 ⋅ 2 − 2 . Ададҳои аввал дар системаи дуӣ: 1 10 = 1 2 , 1_{10}=1_2, 1 10 = 1 2 , 2 10 = 10 2 , 2_{10}=10_2, 2 10 = 1 0 2 , 4 10 = 100 2 , 4_{10}=100_2, 4 10 = 10 0 2 , 5 10 = 101 2 , 5_{10}=101_2, 5 10 = 10 1 2 , 8 10 = 1000 2 , 8_{10}=1000_2, 8 10 = 100 0 2 , 9 10 = 1001 2 , 9_{10}=1001_2, 9 10 = 100 1 2 , 10 10 = 1010 2 . 10_{10}=1010_2. 1 0 10 = 101 0 2 . Бо ҷойи рақам қимати он тағйир мешавад – худатон санҷед:
Шакли кушодаи адад санҷида бин! Аз нав
Аз даҳӣ ба дуӣ ва баръакс Аз даҳӣ ба дуӣ. Адад ва ҳосили тақсимро пай дар пай ба 2 тақсим мекунем, то ҳосил аз 2 хурд шавад. Бақияҳоро аз охир ба аввал менависем. Масалан, 88 10 = 1011000 2 88_{10}=1011000_2 8 8 10 = 101100 0 2 ва 40 10 = 101000 2 . 40_{10}=101000_2. 4 0 10 = 10100 0 2 .
Аз дуӣ ба даҳӣ. Адади дуиро дар шакли кушода менависем ва ҷамъро ҳисоб мекунем:
1011000 2 = 1 ⋅ 2 6 + 0 ⋅ 2 5 + 1 ⋅ 2 4 + 1 ⋅ 2 3 + 0 + 0 + 0 = 64 + 16 + 8 = 88 10 . 1011000_2=1\cdot2^6+0\cdot2^5+1\cdot2^4+1\cdot2^3+0+0+0=64+16+8=88_{10}. 101100 0 2 = 1 ⋅ 2 6 + 0 ⋅ 2 5 + 1 ⋅ 2 4 + 1 ⋅ 2 3 + 0 + 0 + 0 = 64 + 16 + 8 = 8 8 10 . Ва ҳамин тавр 11111000100 2 = 1024 + 512 + 256 + 128 + 64 + 4 = 1988 10 . 11111000100_2=1024+512+256+128+64+4=1988_{10}. 1111100010 0 2 = 1024 + 512 + 256 + 128 + 64 + 4 = 198 8 10 .
Худатон санҷед: даҳӣ ба дуӣ бо тақсим (бо қадамҳо) ва бо ҷамъи вазнҳо:
Даҳӣ ва дуӣ санҷида бин! Аз нав Python инро як сатр иҷро мекунад: int(s, 2) – сатри дуиро ба адади даҳӣ мегардонад.
Дар int(s, 2) 2 – асоси система аст; барои шонздаҳӣ int(s, 16), барои ҳаштӣ int(s, 8).
Системаи ҳаштӣ Дар системаи ҳаштӣ асос 8 аст ва рақамҳо – 0–7. Масалан, 473 8 = 4 ⋅ 8 2 + 7 ⋅ 8 + 3 = 256 + 56 + 3 = 315 10 ; 473_8=4\cdot8^2+7\cdot8+3=256+56+3=315_{10}; 47 3 8 = 4 ⋅ 8 2 + 7 ⋅ 8 + 3 = 256 + 56 + 3 = 31 5 10 ; 276 8 = 128 + 56 + 6 = 190 10 ; 276_8=128+56+6=190_{10}; 27 6 8 = 128 + 56 + 6 = 19 0 10 ; 3704 8 = 1536 + 448 + 0 + 4 = 1988 10 . 3704_8=1536+448+0+4=1988_{10}. 370 4 8 = 1536 + 448 + 0 + 4 = 198 8 10 .
Python 0o123-ро ба даҳӣ мегардонад ва bin онро ба дуӣ мебарад:
Қимати tabdil ҳамеша ба даҳӣ бармегардад (83), на 0o123. Барои табдили дуӣ ба ҳаштӣ: аввал адад ба даҳӣ ва баъд oct истифода мешавад:
Яъне 1100111 2 = 103 10 = 147 8 . 1100111_2=103_{10}=147_8. 110011 1 2 = 10 3 10 = 14 7 8 .
Системаи шонздаҳӣ Шонздаҳӣ 16 рақам дорад: 0–9 ва A=10, B=11, C=12, D=13, E=14, F=15. Масалан, 8 B A 16 = 8 ⋅ 16 2 + 11 ⋅ 16 + 10 = 2234 10 , 8BA_{16}=8\cdot16^2+11\cdot16+10=2234_{10}, 8 B A 16 = 8 ⋅ 1 6 2 + 11 ⋅ 16 + 10 = 223 4 10 , 7 C 4 16 = 7 ⋅ 256 + 12 ⋅ 16 + 4 = 1988 10 . 7C4_{16}=7\cdot256+12\cdot16+4=1988_{10}. 7 C 4 16 = 7 ⋅ 256 + 12 ⋅ 16 + 4 = 198 8
Барои дуӣ → шонздаҳӣ (100101 2 = 32 + 4 + 1 = 37 10 = 25 16 100101_2=32+4+1=37_{10}=25_{16} 10010 1 2 = 32 + 4 + 1 = 3 7 10 = 2 5 16 ) аз hex истифода мебаранд:
Триадҳо ва тетрадҳо Рақамҳои дигар системаҳоро бо чанд бити дуӣ менависанд: рақами ҳаштӣ – бо се бит (триада), рақами шонздаҳӣ – бо чор бит (тетрада). Барои дастӣ табдил додан ин аз ҳама зуд роҳ аст.
10-ӣ 2-ӣ 8-ӣ 16-ӣ 0 0000 0 0 1 0001 1 1 2 0010 2 2 3 0011 3 3 4 0100 4 4 5 0101 5 5 6 0110 6 6 7 0111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F
Триадаҳо (рақамҳои ҳаштӣ):
Рақами ҳаштӣ Триада 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111
Масалан, 123 8 = 001 010 011 2 = 1010011 2 . 123_8=001\ 010\ 011_2=1010011_2. 12 3 8 = 001 010 01 1 2 = 101001 1 2 . Баръакс: битҳоро аз рост се-сеӣ гурӯҳ мекунанд ва ҳар гурӯҳро рақами ҳаштӣ менависанд. Худатон санҷед:
Триадаҳо ва тетрадаҳо санҷида бин! Аз нав
Худатон иҷро кунед Лабораторияи Python: системаҳои ҳисоб санҷида бин! Аз нав
Кор дар синф
Машқҳо
Саволҳо 1. Таҳти мафҳуми «системаи ҳисоб» чӣ фаҳмида мешавад? Шумо бо кадом системаҳои ҳисоб шиносед?
2. Дар Python кадом системаҳои ҳисоб истифода мешаванд?
3. Системаи шонздаҳӣ (hex(x)) аз системаи даҳӣ (int(x, 2)) чӣ фарқ дорад? Системаи ҳаштӣ (oct(x)) аз системаи дуӣ чӣ?
4. Барои ададҳои дар системаи дуӣ, ҳаштӣ ва шонздаҳӣ додашударо аз ададҳои даҳӣ фарқ кардан дар Python аз кадом пешвандҳо истифода мебаранд?
5. Алифбои системаи дуиро чанд рамз ташкил медиҳад? Кадомҳо? Системаи ҳаштӣ ва шонздаҳиро чӣ?
6. Барои табдилдиҳии ададҳо аз системаи даҳӣ ба дуӣ ва баръакс аз кадом усулҳо истифода мебаранд? Ба системаи ҳаштӣ ва шонздаҳӣ чӣ?
7. Табдилдиҳии ададҳои дуӣ ба даҳӣ дар Python чӣ гуна амалӣ мегардад? Ба системаи ҳаштӣ ва шонздаҳӣ чӣ?
8. Оид ба усулҳои «триадҳо» ва «тетрадҳо» чӣ медонед?
Супоришҳо 9. Дар бораи табдилдиҳии ададҳо аз як системаи ҳисоб ба дигар дар компютер нақли хаттӣ нависед.
10. Адади 1 010 0111 2 1\,010\,0111_2 1 010 011 1 2 -ро бо усулҳои дастӣ ва барномасозӣ ба системаи даҳӣ табдил диҳед.
11. Адади A F E C 16 AFEC_{16} A FE C 16 -ро бо усулҳои дастӣ ва барномасозӣ аввал ба системаи даҳӣ ва баъд ба системаи ҳаштӣ табдил диҳед.
Вазифаи хонагӣ
Саволҳои 1–8-ро шифоҳӣ омода кунед; саволи 6-ро дар дафтар нависед.
Супоришҳои 10 ва 11-ро дар дафтар ва дар компютер иҷро кунед; супориши 9-ро дар дафтар нависед.
Вазифаи хонагии онлайнро («ТИ 10 · Вазифаи хонагӣ · Дарси 19») дар саҳифаи «Супоришҳо» иҷро кунед, агар омӯзгор таъин карда бошад.
Хулоса
Чор система: даҳӣ, дуӣ (0b), ҳаштӣ (0o), шонздаҳӣ (0x); Python ададро ҳамеша ба даҳӣ мегардонад.
Даҳӣ → дигар: bin, oct, hex (бо пешванд); дигар → даҳӣ: int(s, асос).
Триада (3 бит) – рақами ҳаштӣ; тетрада (4 бит) – рақами шонздаҳӣ.
Дар ин дарс
чор системаи ҳисобро медонед ва дар Python бо пешвандҳои 0b, 0o, 0x ададҳо менависед;
ададро аз системаи дуӣ ба даҳӣ ва баръакс мегардонед (дастӣ ва бо Python);
бо усули триадҳо ва тетрадҳо дуӣ, ҳаштӣ ва шонздаҳиро ба ҳам мегузаронед;
bin, oct, hex ва int(s, асос)-ро истифода мебаред.
Такрор (2 дақиқа)
Чӣ чоп мешавад: print(5 == 5.0, 5 != 5.0)?
Чӣ чоп мешавад: print(17 % 5 == 2)?
Фарқи = ва == дар чист?
Ҷавоб
True False. 2. True. 3. = қимат мебахшад, == муқоиса мекунад.
Вазъият барои андешаронӣ Дар дафтар шумо ададро бо даҳ рақам менависед, дар компютер бошад ҳама чиз танҳо бо 0 ва 1 нигоҳ дошта мешавад. Ранги сайт #FF5733-ро дидаед – ин адади шонздаҳӣ аст. Чаро ҳамин гуна «забонҳо» барои компютер қулай аст?
>>> 0b1010
10
>>> 0B1010
10
>>> 0o17
15
>>> 0O17
15
>>> 0x2A
42
>>> 0XFF
255
>>> hex(255)
'0xff'
Кори амалӣ
Дар лабораторияи «Пешвандҳо» ададҳои худро бо 0b, 0o, 0x нависед.
Масъалаи 1: адади дуӣ → даҳӣ. Масъалаи 2: шонздаҳӣ → даҳӣ ва ҳаштӣ. Масъалаи 3: оё ду сатри дуӣ як адад аст?
Дар компютер: IDLE, дар телефон: лаборатория.
Калимаҳои калидӣ системаи ҳисоб асос пешванд шакли кушода шакли пӯшида триада тетрада
Ман дар ин дарс чӣ омӯхтам? Кадомашро аллакай метавонед ва кадомашро боз машқ мекунед?
Ман пешвандҳои 0b, 0o, 0x-ро медонам.
Ман ададро бо тақсим ва бо ҷамъи дараҷаҳо аз як система ба дигар мегардонам.
Ман бо триадаҳо ва тетрадаҳо дастӣ ҳаштӣ ва шонздаҳиро ба дуӣ мегузаронам.
Нависед: чаро print(0o123) 83 чоп мекунад, на 0o123?
Ҳар пешвандро ба системаи ҳисоби он мувофиқ кунед.
Ҳар як унсури чапро бо яке аз рост мувофиқ кунед 0b → … дуӣ шонздаҳӣ даҳӣ ҳаштӣ
0o → … дуӣ шонздаҳӣ даҳӣ ҳаштӣ
0x → … дуӣ шонздаҳӣ даҳӣ ҳаштӣ
бе пешванд → … дуӣ шонздаҳӣ даҳӣ ҳаштӣ
Як ҷавобро интихоб кунед A ff B 0xFF C 0xff D 0x255
Адади ҳаштии 34 8 34_8 3 4 8 -ро бо усули триадҳо ба системаи дуӣ гузаронед (3 → 011, 4 → 100).
Як ҷавобро интихоб кунед A 11001 B 11100 C 10011 D 100011
10
.
Дуӣ 1001 → даҳӣ 9
Дуӣ 101001 → даҳӣ 41
Ҳаштии 0o123 дар даҳӣ: 83
Ва дар дуӣ: 0b1010011
Дуии 0b1100111 дар даҳӣ: 103
Дар ҳаштӣ: 0o147
Дуии 0b100101 дар даҳӣ: 37
Дар шонздаҳӣ: 0x25
b = "1001"
print ( "Дуӣ" , b , "→ даҳӣ" , int ( b , 2 ) )
b = "101001"
print ( "Дуӣ" , b , "→ даҳӣ" , int ( b , 2 ) )
tabdil = 0o 123
print ( "Ҳаштии 0o123 дар даҳӣ:" , tabdil )
print ( "Ва дар дуӣ:" , bin ( tabdil ) )
tabdil = 0b 1100111
print ( "Дуии 0b1100111 дар даҳӣ:" , tabdil )
print ( "Дар ҳаштӣ:" , oct ( tabdil ) )
tabdil = 0b 100101
print ( "Дуии 0b100101 дар даҳӣ:" , tabdil )
print ( "Дар шонздаҳӣ:" , hex ( tabdil ) )