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. 🔥🔢✨