Kezdőoldal » Tudományok » Alkalmazott tudományok » Hogy lehet egy hosszú bitsoroz...

Hogy lehet egy hosszú bitsorozatot base26-ra konvertálni?

Figyelt kérdés

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.



2022. szept. 2. 13:03
1 2
 1/11 anonim ***** válasza:
0%
Mármint 26-os számrendszerbe akarsz konvertálni?
2022. szept. 2. 13:15
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:
Nem érthető a leírásom?
2022. szept. 2. 13:36
 3/11 anonim ***** válasza:
100%
Nagyon egyszerű a dolog, veszed az első 5 bitet a streamből, kódolod, kiegészíted a streamből a maradékot 5 bitre (annyit veszel belőle amennyi kell), kódolod és így tovább a stream végéig. Ha vége a streamnek, rekurzívan addig kódolod a maradékot amíg nem lesz vége.
2022. szept. 2. 13:40
Hasznos számodra ez a válasz?
 4/11 anonim ***** válasza:
0%
hát nem. Eleve ott nem értem, hogy egy bitstrimgből hogyan lesz valós. Pl. a float64-ben van egy mantissza meg egy exponens. És innen zűrzavar az egész. És kb. az sem világos, hogy mit akarsz elérni? Az sem világos, hogy véges hosszú a bitstring vagy "végtelen" amikor irod, hogy valós időben folyamatosan érkeznek a bitek. Mennyi idő van a feldolgozásra?
2022. szept. 2. 13:44
Hasznos számodra ez a válasz?
 5/11 anonim ***** válasza:
100%

"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.

2022. szept. 2. 13:52
Hasznos számodra ez a válasz?
 6/11 A kérdező kommentje:

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?

2022. szept. 2. 14:08
 7/11 anonim ***** válasza:
6: Nem lehetetlen, csak bonyolult. Mert ahhoz kell az egész szám. Ha a konverzió elején nincs meg az egész szám akkor tényleg lehetetlen. Ha a konverzió megkezdésekor az egész szám rendelkezésre áll akkor el tudod végezni az átváltást simán. De akkor már egyszerűbb az osztásos módszerrel ahogy tanultuk iskolába.
2022. szept. 2. 14:18
Hasznos számodra ez a válasz?
 8/11 A kérdező kommentje:
Végül úgy döntöttem, hogy 19 bitenként köpök ki 4 betűt, azt csá. 4*log2(26) = 18.8. Nem fogja kihasználni a base26 teljes terjedelmét, de a célnak megfelel.
2022. szept. 2. 14:26
 9/11 A kérdező kommentje:
Ja nem, hülye vagyok, 14 bitenként 3 betűt, mert 3*log2(26) = 14.1 ami több mint 14 bit helyigénye.
2022. szept. 2. 14:27
 10/11 anonim ***** válasza:
az teljesen jó
2022. szept. 2. 14:30
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!