Sanoq tizimlari.
Maktabda informatika darsini o`qiganlar sonlar o`nlik sanoq tizimidan boshqa tizimlarda ham tasvirlanishi mumkinligini yaxshi bilishadi.Masalan, kompyuterda ikkilik sanoq tizimidan foydalaniladi hamda, masalan, 19 soni ikkilik sanoq tizimida 10011 ko`rinishda bo`ladi. Bundan tashqari ba`zida sonlarni bir sanoq tizimidan boshqasiga o`tkazishga ham to`g`ri kelishi mumkin. Pyhtonda buning uchun bir nechta funksiyalar mavjud:
int([object], [sanoq tizimi asosi]) – o`nlik sanoq tizimidagi butun songa aylantirish. Boshqa ko`rsatma berilmasa, sanoq tizimi o`nlik deb qaraladi, lekin, 2 likdan 36 lik sanoq tizimlarigacha ko`rsatish mumkin.
bin(x) – butun sonni ikkilik sanoq tizimidagi satrga aylantirish.
hex(x) - butun sonni o`n oltilik sanoq tizimidagi satrga aylantirish.
oct(x) - butun sonni sakkizlik sanoq tizimidagi satrga aylantirish.
Misollar:
>>> a = int('19') # satrni songa aylantiramiz
>>> b = int('19.5') # Satr butun son emas
Traceback (most recent call last):
File "", line 1, in
ValueError: invalid literal for int() with base 10: '19.5'
>>> c = int(19.5) # Kasr songa nisbatan qo`llanilganda uning kasr qismini kesib tashlaydi.
>>> print(a, c)
19 19
>>> bin(19)
'0b10011'
>>> oct(19)
'0o23'
>>> hex(19)
'0x13'
>>> 0b10011 # Sonli o`zgarmaslar (konstantalar)ni shunday ko`rinishda ham yozish mumkin
19
>>> int('10011', 2)
19
>>> int('0b10011', 2)
19
Haqiqiy sonlar (float)
>>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1
0.9999999999999999
Haqiqiy sonlar bilan ham butun sonlar bilan bajarish mumkin bo`lgan barcha amallarni bajarish mumkin. Lekin, (kompyuterda sonlarning tasvirlanishlari usuli sababli), haqiqiy sonlar unchalik aniq emas va bu ba`zi bir xatoliklarga olib kelishi mumkin.
Aniqroq hisob-kitoblar uchun boshqa ob`yektlar qo`llaniladi (masalanDecimal va Fraction). Bundan tashqari haqiqiy sonlar bilan ishlanganda uzun sonlar imkoniyati qollailmaydi.
>>> a = 3 ** 1000
>>> a + 0.1
Traceback (most recent call last):
File "", line 1, in
OverflowError: int too large to convert to float
Dostları ilə paylaş: |