Nekonečný číselný typ

Nekonečný číselný typ
« kdy: 04. 12. 2019, 22:36:02 »
Potrebujem serializovať grafické dáta a chcel by som do súboru ukladať čísla tak aby sa tam dali ukladať hodnoty nekonečnej veľkosti.

Mám asi takú predstavu že prvých 7 bitov každého byte sa použije na ukladanie hodnoty (0 - 127) a posledný bit sa použije ako príznak true / false. ak bude false berie sa aktuálna hodnota. Ak bude true pokračuje sa v čítaní na ďaľší byte kde sa zase na ukladanie hodnoty použije len 7 bitov a potom sa skontroluje príznak a tak stále dookola. Viem koľko bitov prečítam... Takže asi podľa sizeof(nejaky_typ) * 8 vyberiem vždy prvý číselný typ ktorý bude vačší alebo rovný ako počet prećítaných bitov.

Zaujímalo by ma či neviete o nejakej knižnici ktorá by takýmto spôsobom serializovala čísla do binárnej podoby. Alebo to budem musieť naprogramovať sám.



_Jenda

  • *****
  • 1 624
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Nekonečný číselný typ
« Odpověď #2 kdy: 04. 12. 2019, 23:56:08 »
bignum/gmp

dále bych zvážil jestli nepoužít rovnou třeba Protocol buffers, které s čísly dělají něco podobného https://developers.google.com/protocol-buffers/docs/encoding

a nebo jestli tohle není moc velký opruz a nebylo by jednodušší mít „pascalovský string“ -  na začátku jeden bajt, který říká, kolik bajtů bude následovat. Takto uložíš čísla do 2^2048, což by ti mělo stačit.