128-bits hex tot zes-(basis 6) efficiënte tranlation in c

T

t_maggot

Guest
Ik heb om een 128-bits lang nummer (heks wordt opgeslagen in 16 afzonderlijke bytes in een array) met een zes-(basis 6) 25-byte lang char (ASCII) string.Ik ben op zoek naar code nuttigen van het minste geheugen ruimte POSIBLE.Eigenlijk vraag ik me af dat misschien is er een manier om dit te doen zonder gebruik te maken van vertalingen in alle lange data types, uitgebreid divisies enz.

Iedere hulp of richtingen gewaardeerd.Toegevoegd na 4 uur 17 minuten:Ok, ik heb een manier gevonden om het aantal met (24 * 16) integer divisies met 6, met 7-byte woorden als tijdelijke gegevens.Dit kan het werk doen voor mij, maar als iemand een betere manier, je
bent welkom!

 
U kunt proberen de truc gebruikt voor de omrekening van bin naar decimaal: voor elke bit in het decimale getal, vermenigvuldigen de zes-nummer twee (bijv. vermenigvuldigt elk cijfer door twee, voeg uitvoeren van lagere orde, als resultaat> = 6, ingesteld voeren en voeren mod 6) en voeg de bits uit decimaal getal met het minst significante cijfer van de zes-woord.

Dit lijkt een beetje traag, maar vereist een minimale geheugen en geen verdeling alleen verschuift, dus is geschikt voor willekeurig lange woorden.

JW

 

Welcome to EDABoard.com

Sponsor

Back
Top