Simplă "comprimare" a numărului


Ideea este asta.
Orice număr poate fi împachetat în octeți, obținând o dimensiune de 1,5-2,5 ori mai mică prin următorul algoritm:
    1. Luați trei cifre din poziția curentă.
    2. Dacă valoarea este mai mare decât 255, atunci vom deplasa poziția la minus 1, și a obține un număr din două cifre, care este plasat în octeți.
    3. Dacă numărul rezultat este mai mic de 256, puneți-l în octeți
    4. Dacă cifra este 0, puneți acest 0 într-un octet separat.






exemplu
    Numărul 1257075081

1. Primul număr din trei cifre (125) este mai mic de 256, plasat în primul octet.
2. Următorul număr de trei cifre (707) este mai mare de 255, deci puneți următorul octet 70
3. Următorul număr din trei cifre (750) este mai mare de 255, deci puneți următorul octet 75
4. Următoarea cifră este 0, așa că am pus-o într-un octet separat
5. Numărul rămas este 81, puneți-l în ultima octet.

Total, a primit 5 octeți, în loc de 10:
byte matrice
(
0 => 125,
1 => 70,
2 => 75,
3 => 0,
4 => 81
)





Despachetarea

    Prin simpla fuziune a matricei rezultate într-un șir.
Unde se utilizează
    Criptarea și comprimarea datelor.

Unice time-stamping este de 4 octeți și aveți 5, în cazul în care economisiți. D

Ei bine, eu sunt doar un exemplu de număr.
Deși, probabil, chiar și un pachet obișnuit () împachetează un număr mai bun decât în ​​acest fel.

consecință dăunătoare a hobby-ului limbilor orientate pe text, cum ar fi php
stocarea unui număr într-un format binar este în mod natural mai scurtă decât într-un format de text, dar există deja și a fost de la începutul apariției computerelor într-un mod natural

Acest lucru este în cazul în care numerele sunt prezentate în text, în cazul în care numerele sunt prezentate ca numărul de economii în acest mod nu este atins. Cred că puțini oameni păstrează numerele în variabilele de șir.
Și ideea este frumoasă)







Articole similare

Trimiteți-le prietenilor: