
53_BIN_DEC.py
53_BIN_DEC.py

Ellenőrzi, hogy a szám a megadott tartományban van‑e. A while ciklusban maradékos osztással (% 2) kiszámítja a biteket. A biteket jobbról balra fűzi össze a bajt változóban.
Végül kiírja az eredményt: például 13 → 1101.
Ez a módszer a bináris számképzés alapja — minden bit a szám 2‑vel való osztásának maradékát jelenti.
szam = int(input("Adj meg egy 256-nál kisebb nem negatív egész számot: "))
if 0 <= szam < 256:
eredeti = szam
bajt = ""
if szam == 0:
bajt = "0"
else:
while szam > 0:
bit = szam % 2
bajt = str(bit) + bajt
szam //= 2
print(f"A {eredeti} kettes számrendszerben: {bajt}")
else:
print("Hibás bemenet. 0–255 közötti egész számot adj meg.")
Kettes számrendszerben megadott számot alakítsuk át tízes számrendszerbe!
Legyen a szám: 10112
Az átszámítás módja: 1*2^3 + 0*2^2 + 1*2^1 + 1
Nézzük meg ennek a kifejezésnek egy másik alakját, amelyet 2 kiemelésével kapunk:
((1*2 + 0)*2 + 1)*2 + 1
Ez az ún. Horner-elrendezés. Ennek a formának az előnye, hogy a kifejezés a szorzás és összegzés műveletekkel kiszámítható. Nincs szükség hatványozásra. A decimális változóban képezzük az összeget.
Nem egyszerűen csak összegzésről van szó.
Az összeget szorozzuk a számrendszer alapszámával, és ehhez hozzáadjuk a következő bit értékét.
Fogalmazzuk meg általánosan is a feladatot!
Egy G alapú számrendszerben megadott szám számjegyei legyenek az A vektorban.
Alakítsuk át az így megadott számot tízes számrendszerbeli számmá.
Horner-elrendezés:
S = 0
Ismétlés I = 1-től N-ig:
S = S * G + A(I)
Ki: S
