Алгоритм тџсінігі


Биттік операциялар тізімі



Pdf көрінісі
бет5/20
Дата12.06.2022
өлшемі1,41 Mb.
#36747
1   2   3   4   5   6   7   8   9   ...   20
Байланысты:
Алгоритм тџсінігі

Биттік операциялар тізімі
x | y Биттік немесе
x ^ y Биттік «алып тастағыш» немесе
x & y Биттік және
x << n Солға биттік жылжу
x >> y Оңға биттік жылжу
~x Биттер инверсиясы
Қосымша әдістер. int.bit_length() - белгісі мен жетекші нөлдерін алып
тастағандағы екілік жүйеде санды беру үшін қажетті биттер саны. Төменде
көрсетілгендей:
>>> n = -37
>>> bin(n) // '-0b100101'
>>> n.bit_length() // 6 
int.to_bytes
(length, byteorder, *, signed=False) – осы санды беретін байттар жолын
қайтарады. 
>>> (1024).to_bytes(2, byteorder='big') // b'\x04\x00'
>>> (1024).to_bytes(10, byteorder='big')
b'\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00'
>>> (-1024).to_bytes(10, byteorder='big', signed=True)
b'\xff\xff\xff\xff\xff\xff\xff\xff\xfc\x00'
>>> x = 1000
>>> x.to_bytes((x.bit_length() // 8) + 1, byteorder='little')
b'\xe8\x03'
Келесі classmethod int.from_bytes(bytes, byteorder, *, signed=False) әдісі
аталған байттар жолынан сандарды қайтарады.
>>> int.from_bytes(b'\x00\x10', byteorder='big') // 16
>>> int.from_bytes(b'\x00\x10', byteorder='little') // 4096
>>> int.from_bytes(b'\xfc\x00', byteorder='big', signed=True) // -1024
>>> int.from_bytes(b'\xfc\x00', byteorder='big', signed=False) // 64512
>>> int.from_bytes([255, 0, 0], byteorder='big') // 16711680
17


Санау жүйелері. Сандар тек ғана ондық санау жүйесінде ғана емес
сонымен қатар, басқа да санау жүйелерінде беріледі. Мысалы, компьютерде
екілік санау жүйесі қолданылады. 19 саны екілік санау жүйесінде 10011 деп
бейнеленеді. Кейбір жағдайда бір санау жүйесінен екіншіге көшу қажет
болады. Оны орындауға Python тілі бірнеше функцияларды ұсынады:

int([object], [санау жүйесінің негізі]) – ондық санау жүйесіндегі
бүтінге айналдыру. Бұл жерде үнсіз келісім бойынша ондық санау жүйесі
қолданылады, бірақ негізін 2-ден 36-ға дейін таңдай отырып кез келген санау
жүйесінде беруге болады. 

bin(x) – бүтін санды екілік жолға айналдыру

hex(х) - бүтін санды он алтылық жолға айналдыру

oct(х) - бүтін санды сегіздік жолға айналдыру
Санау жүйесіне 
мысалдар
>>> a = int('19') # жоды санаға айналдыру
>>> b = int('19.5') # жол бүтін сан болып табылмайды
Traceback (most recent call last):
File "", line 1, in
ValueError: invalid literal for int() with base 10: '19.5'
>>> c = int(19.5) # жылжымалы нүктесі бар санға қолданылғанда бөлшек 
бөлігін алып тастайды
>>> print(a, c)
19 19
>>> bin(19)
'0b10011'
>>> oct(19)
'0o23'
>>> hex(19)
'0x13'
>>> 0b10011 # сандық тұрақтылықарды ослай да жазуға болады. 
19
>>> int('10011', 2)
19
>>> int('0b10011', 2)
19
Нақты сандар (float). Нақты сандар да бүтін сандардағы сиқты
операцияларды қолдайды, бірақ сандарды компьютерде бергендіктен нақты
сандар нақты болмауы және қателіктерге соқтыруы мүмкін және оның өзі
қателіктерге әкелуі мүмкін.
>>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1
0.9999999999999999
Жоғары нақтылыққа қол жеткізу үшін басқа да объектілерді (Мысалы: Decimal 
және Fraction) қолдануға болады.
Сонымен қатар, нақты типтер ұзақ арифметиканы қолдамайды. 
>>> a = 3 ** 1000
>>> a + 0.1
Traceback (most recent call last):
18


File "hello world" сөз тіркесін"hello world" сөз тіркесін, line 1, in
OverflowError: int too large to convert to float
Сандармен қарапайым мысалдар:
>>> c = 150
>>> d = 12.9
>>> c + d
162.9
>>> p = abs(d - c) # сан модулі
>>> print(p)
137.1
>>> round(p) # Дөңгелектеу
137
Қосымша әдістері:

float.as_integer_ratio() - қатынасы осы санға тең болатын жұп сандар.

float.is_integer() - мән бүтін сан бола ма.

float.hex() – float-ты hex-ке түрлендіреді (он алтылық жүйеде).

classmethod float.fromhex(s) - он алтылық жолдағы float.
>>> (10.5).hex()
'0x1.5000000000000p+3'
>>> float.fromhex('0x1.5000000000000p+3')
10.5
Python тілінде сандармен жұмысқа қатысты стандартты өрнектерден
басқа бірнеше қажетті модульдер бар. Келесі  math модулі күрделі
математикалық функцияларды қамтамасыз етеді. Оның қолданылуы
төмендегідей.
>>> import math
>>> math.pi // 3.141592653589793
>>> math.sqrt(85) // 9.219544457292887
Келесі random модулі - кездейсоқ сандар генераторы мен кездейсоқ функцияны
таңдауды жүзеге асырады.
>>> import random
>>> random.random() // 0.15651968855132303
Комплексті сандар (complex). Python тіліне сонымен қатар, комплекті
сандар енгізілген. 
Комплекс сандардың программада қолданылуы көрсетілген. 
>>> x = complex(1, 2)
>>> print(x)
(1+2j)
>>> y = complex(3, 4)
>>> print(y)
(3+4j)
>>> z = x + y
>>> print(x)
(1+2j)
>>> print(z)
(4+6j)
19


>>> z = x * y
>>> print(z)
(-5+10j)
>>> z = x / y
>>> print(z)
(0.44+0.08j)
>>> print(x.conjugate()) # түйіндес сан
(1-2j)
>>> print(x.imag) # жорамал бөлігі 
2.0
>>> print(x.real) # нақты бөлігі
1.0
>>> print(x > y) # Комплексті санды салыстыруға болмайды
Traceback (most recent call last):
File "", line 1, in
TypeError: unorderable types: complex() > complex()
>>> print(x == y) # бірақ теңдікке тексеруге болады
False
>>> abs(3 + 4j) # комплексті сан модулі
5.0
>>> pow(3 + 4j, 2) # санның дәрежесін шығару
(-7+24j)
Комплексті сандармен жұмыс жасау үшін сонымен қатар,  cmath модулі де
қолданылады. 


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   20




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет