a = 0b1011 # binárně
b = 0o17 # osmičkově
c = 0x1F # šestnáctkově
print(a, b, c) # výstup: 11 15 31Seminář informatiky
V Pythonu jsou čísla uložena v binární podobě, ale běžně je zapisujeme v desítkové soustavě.
Python umožňuje zápis i v jiných soustavách:
Binární číslo začíná prefixem 0b
Osmkové číslo začíná prefixem 0o
Hexadecimální číslo začíná prefixem 0x
a = 0b1011 # binárně
b = 0o17 # osmičkově
c = 0x1F # šestnáctkově
print(a, b, c) # výstup: 11 15 31Funkce bin(), oct(), hex() převádí čísla na jiný zápis.
x = 25
print(bin(x)) # '0b11001'
print(oct(x)) # '0o31'
print(hex(x)) # '0x19'Funkce int() umí převést řetězec s číslem v libovolné soustavě.
print(int("1011", 2)) # 11
print(int("31", 8)) # 25
print(int("19", 16)) # 25+ – sčítání
- – odčítání
* – násobení
/ – dělení (výsledek je float)
// – celočíselné dělení
% – zbytek po dělení (modulo)
** – mocnina
a = 15
b = 4
print(a + b) # 19
print(a - b) # 11
print(a * b) # 60
print(a / b) # 3.75
print(a // b) # 3
print(a % b) # 3
print(a ** b) # 50625== – rovnost
!= – nerovnost
< – menší než
⇐ – menší nebo rovno
> – větší než
>= – větší nebo rovno
x = 7
y = 10
print(x == y) # False
print(x != y) # True
print(x < y) # True
print(x >= 5) # TrueZkrácený zápis operací s přiřazením:
+= – přičti a ulož
-= – odečti a ulož
*= – vynásob a ulož
/= – vyděl a ulož
z = 10
z += 5 # 15
z *= 2 # 30
z -= 4 # 26
z /= 2 # 13.0
print(z)Python umí pracovat přímo s bity pomocí operátorů:
& – bitový AND
| – bitový OR
^ – bitový XOR "exkluzivní nebo"
~ – bitová negace
<< – bitový posun vlevo
>> – bitový posun vpravo
a = 0b1010
b = 0b1100
print(bin(a & b)) # 0b1000
print(bin(a | b)) # 0b1110
print(bin(a ^ b)) # 0b110
print(bin(a << 1)) # 0b10100Vypočítejte 25 děleno 7:
celočíselně
se zbytkem
jako desetinné číslo
Ověřte, zda je číslo 2⁸ větší než 200.
Zapište číslo 42 v binární, osmičkové a šestnáctkové soustavě.
Převěďte binární číslo 110101 na desítkové pomocí int().
Ověřte, jak funguje a ^ b pro různá čísla.