
32_DEC_HEX
32_DEC_HEX

Decimális – hexadecimális számátalakítás
A hexdecimális számjegyeket ábrázoló karaktereket egy karakterlánc konstansban adjuk meg:
h = "0123456789ABCDEF"
A decimális szám számjegyeit a maradékos osztással kapjuk meg. A h karakterláncban felsorolt hexadecimális számjegyek indexét a decimális érték adja: h[dec // 16].
DEC_HEX.py
h = "0123456789ABCDEF"
dec = int(input("0 <= a szam < 256: "))
print("Hexadecimalis alak: ", end="")
print(h[dec // 16], end="")
print(h[dec % 16])
Beolvas egy decimális számot (0 és 255 között).
int(input("0 <= a szam < 256: "))
Az input() függvény beolvassa a felhasználó által megadott számot szövegként, az int() pedig egész számmá alakítja.
Meghatározza a hexadecimális alakját:
A magasabb helyiértékű hexadecimális számjegyet úgy kapjuk meg, hogy elosztjuk a számot 16-tal és az egészrészt (// 16) vesszük.
Az alacsonyabb helyiértékű hexadecimális számjegyet a 16-tal való osztás maradéka (% 16) adja.
A két számjegyet kikeresi a h változóból, amely tartalmazza a hexadecimális számjegyeket ("0123456789ABCDEF").
h[dec // 16] → Ez adja az első (magasabb helyiértékű) számjegyet.
h[dec % 16] → Ez adja a második (alacsonyabb helyiértékű) számjegyet.
Kiírja a hexadecimális alakot:
print("Hexadecimalis alak: ", end="") – ez biztosítja, hogy az utána következő kiírások egy sorban maradjanak.
print(h[dec // 16], end="") – kiírja az első hexadecimális számjegyet.
print(h[dec % 16]) – kiírja a második hexadecimális számjegyet, majd sortöréssel zár.
Példák a működésre:
Beírt decimális szám
dec // 16
dec % 16
Hexadecimális alak
10
0
10
0A
45
2
13
2D
255
15
15
FF
128
8
0
80
Alternatív megoldás Python beépített funkcióval
A fenti program helyett Pythonban egyszerűen lehet hexadecimálissá alakítani a hex() függvénnyel:
dec = int(input("0 <= a szam < 256: "))
print("Hexadecimalis alak:", hex(dec)[2:].upper()) # [2:] levágja a '0x' előtagot
Ez ugyanazt az eredményt adja, de rövidebb és
hatékonyabb
A számok kovácsa
Messze földön, az Idők Városában, ahol a számok és betűk együtt éltek, élt egy különös mester: Numerion, a számok kovácsa. Ő volt az egyetlen, aki képes volt átváltani a számokat más formákba – a hagyományos számokat különleges jelekké alakította, amelyeket csak a beavatottak értettek.
Egy nap a király, Hexador, hívatta Numeriont.
– Bölcs kovács! – szólt a király. – Egy ősi irat került a birtokomba, de a számok rajta érthetetlenek. Azt mondják, ezek a tizenhatos rend titkos jelei. Tudod, hogyan kell olvasni őket?
Numerion elmosolyodott.
– Felség, a számok világa egyszerűbb, mint hinnéd. Egyetlen számot két kisebb részből állítunk össze.
Azzal a kovács elővett egy aranytáblát, és felírt rá egy példát:
"45 → 2D"
A tanácsosok összevonták a szemöldöküket.
– De hogyan?
Numerion a tűz fölé tartotta kezét, és a számok parázsként izzottak előtte.
– Először elosztjuk a számot tizenhattal, és az eredmény első része a nagyobbik jel. A maradék adja a kisebbik jelet. Így a 45-öt elosztva 16-tal, 2 marad fent, és 13 maradék marad.
A tábla felizzott, és a 2 mellé megjelent egy különös jel: D.
– Ez a tizenhatos írás titka – mondta Numerion. – A számokat így őrzik meg az idő.
Hexador király bólintott, majd egy pergament húzott elő.
– És ha azt mondom, hogy 255?
Numerion elmosolyodott, majd a tűzből két betű emelkedett ki: F és F.
– Felség, a legnagyobb szám, amit két jellel kiírhatunk a tizenhatos rend szerint, FF!
A király elégedetten csettintett.
– Akkor hát, Numerion, te leszel a királyságunk Számírója, hogy minden titkos tudást megőrizz az idők végezetéig!
És így lett Numerion az első, aki a számokat más világok jeleire fordította, hogy az idő soha ne felejtse el a tizenhatos rend ősi nyelvét. 🔥🔢✨
