Hogy lehet egy hosszú bitsorozatot base26-ra konvertálni?
Odáig eljutottam, hogy ha a bitsorozatot egy 0-1 közötti valósnak tekintem (pl bináris 0.1010001100... = decimális 0.63...), akkor a konvertálás úgy megy, hogy a számot megszorzom 26-tal, az egészrészét kiírom (a-z közti 26 betű valamelyikével jelölve), a törtészét megint megszorzom 26-tal, annak is kiírom az egészrészét, és így tovább.
De ha a bitsorozatom hosszú (messze túlmegy a float64 felbontásán), vagy valós időben, folyamatosan érkeznek a bitek, ez a paraszti módszer nem működik. Ha base 4,8,16,32,64...-re akarnék konvertálni, az egyszerű lenne, mert a bitpárok, bithármasok, stb egymástól függetlenül kódolhatóak. De base26-nál fogalmam sincs, mit kéne csinálni, hogy kéne továbbgörgetni a maradékokat stb. Az első értéket az első 5 bit alapján még meg tudom állapítani, de nem tudom hogyan tovább.
"a bitsorozatot egy 0-1 közötti valósnak tekintem"
Nem jó megközelítés. A bit (vagy inkább byte/oktett) sorozatot kódold, függetlenül attól, hogy mit reprezentál.
Valóban mindegy, hogy mit reprezentál a bitstream, a valósnak tekintést csak azért írtam, mert hasznos absztrakciónak tűnt a konverzió szempontjából.
Közben találtam stackoverflow-n pár beszélgetést, amelyek alapján olyan bázisok között, amelyek nem egymás hatványai, nem lehet stream műveletként úgy konvertálni, ahogy eredetileg elképzeltem, mert minden helyiérték hathat tetszőlegesen távoli helyiértékekre a másik kódolásban. Ezek szerint az #5-össel igencsak fején találtad a szöget, és el kell engedni a puszta számrendszer-konverziót, mert az bizonyítottan lehetetlen ebben a formában.
A 3-as tippet bevallom nem teljesen értem. Az első 5 bit meghatároz egy 0-31 közti számot. Ha 0-25 közé esik, akkor kiírom a neki megfelelő betűt az abc-ből, ha 26-31 közé, akkor mit csinálok? Mi lesz a kódolt érték, és a mi maradék, és mit csinálok vele?
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!