konvertálásra
Cél: hozzon létre egy függvényt a Pythonban a decimálisból binárissá és kiterjesztésként bármely más bázisra való átalakításhoz.

A tizedes szám binárisra konvertálása nem rejtély a Pythonban:

Még a bináris és a tizedes közötti fordított folyamat is egyszerű:

De a kegyelem, amikor megtanul programozni, a hatodik érzék fejlesztésére törekszik algoritmikus, gyakran elhanyagolt szempont.

Tehát a mai cikkben megtervezzük saját felelős funkciónkat tizedes számot konvertálni binárisra, hogy később kibővítjük, hogy kifejezzük bármely más bázis.

Az alapul szolgáló algoritmus felfedezése gyakran magában foglalja a feladat végrehajtását kézzel nagyon figyelve a mi mentális folyamatok, fordítsd őket szavak és később átalakítsa őket utasítás saját programozási nyelv.

A minket érintő példa egyszerű, mivel a mentális folyamat és a formális fejlődés között gyakorlatilag közvetlen összefüggés van, de nem mindig van ilyen, és ezekben az esetekben el kell atomizálni azt, ami a fejünkön megy keresztül.

Az iskolában azt tanítják nekünk (vagy legalábbis tanították), hogy a pozitív egész számot tizedes alapon binárisra konvertáljuk:

A számot elosztjuk kettővel, és felírjuk az osztás fennmaradó részét. Vesszük a hányadost, és kettővel elosztjuk, megjegyezve az új maradékot. Fogjuk az új hányadost, és addig folytatjuk ugyanazt a műveletet, amíg nem tudunk folytatni, mivel a hányados már kettőnél kevesebb (egy, bináris konverziókban). Ezután vesszük ezt a hányadost (egyet), és hozzáadjuk, fordított megjelenési sorrendben, az összes maradványt, amelyet útközben írtunk le.

Konvertáljuk például a 81-et binárisra:

Már nem oszthatjuk fel kettővel, mivel a hányados egy. Ezt a hányadost vesszük az összes maradékkal együtt fordított sorrendben, és 81-et találunk binárisan kifejezve:

1010001

Algoritmusunk megteszi pontosan ugyanaz.

A bináris változó egy karaktersorozat, amely minden maradékot felhalmoz. Figyelje meg annak felépítését, hozzátéve bal oldalon minden új pihenés.

A tizedes változó az eredeti számmal kezdődik, de minden egyes iterációban az egész osztásból adódó új hányados értékét veszi fel. A hurok folyamatosan ismétlődik, amíg a hányados nem nulla. Ekkor az előző (egy) hányados lesz a számjegy legjelentősebb az eredményt, a visszatérési nyilatkozattal együtt küldte vissza.

Lássuk ezt a funkciót működés közben:

Bármely más bázissá konvertáláshoz az eljárás teljesen ugyanaz, azzal a különbséggel, hogy az egész ketté osztás végrehajtása helyett az új bázisban tesszük.

És most áttérés oktálissá:

Tesztelés céljából kerülje a 10-nél nagyobb bázisok használatát, mivel nincs elég számjegyünk az eredmény megjelenítéséhez. Vagy módosíthatja a programot, és létrehozhatja saját számjegyeit az ábécé betűivel, mint a hexadecimális rendszerben.

Javasolt 1. gyakorlat: hozzon létre egy olyan függvényt, amely egy tizedes számot 16-osá alakít (hexadecimális). Szüksége lesz egy olyan táblára, amely a maradék 10, 11, 12,…, 15 eredményeit átalakítja A, B, C,…, F, ill.

Javasolt 2. gyakorlat: hozzon létre egy olyan függvényt, amely binárisról decimálissá alakul.

Javasolt 3. feladat: hozzon létre egy olyan függvényt, amely bármely más bázisban kifejezett számot tizedessé alakítja.

Javier Montero Gabarró

A cikk szövege egy ilyen típusú Creative Commons licencre van szükség CC-BY-NC-ND (nyugtázás, nem kereskedelmi jellegű, nem származékos mű, 3.0 nem támogatott)

Az önképző klub

Lásd a Pythonra vonatkozó cikkek teljes indexét.