Implémente l'encodage et le décodage en quantité à longueur variable.
Le but de cet exercice est de mettre en œuvre l'encodage et le décodage VLQ.
En bref, le but de cet encodage est de représenter des valeurs entières d'une manière qui permet d'économiser des octets. Seuls les 7 premiers bits de chaque octet sont significatifs (justifiés à droite ; un peu comme dans un octet ASCII). Donc, si tu as une valeur de 32 bits, il faut la décomposer en une série d'octets de 7 bits. Bien sûr, tu obtiendras un nombre variable d'octets selon ton entier. Pour indiquer quel est le dernier octet de la série, tu laisses le bit n° 7 à zéro. Dans tous les octets qui précèdent, tu mets le bit n° 7 à 1.
Ainsi, si un entier est compris entre 0-127, il peut être représenté sur un seul octet.
Bien que le VLQ puisse traiter des nombres de tailles arbitraires, dans cet exercice on se limitera aux nombres qui tiennent dans un entier non signé de 32 bits.
Voici des exemples d'entiers sous forme de valeurs 32 bits, et les quantités à longueur variable auxquelles elles correspondent :
NUMBER VARIABLE QUANTITY
00000000 00
00000040 40
0000007F 7F
00000080 81 00
00002000 C0 00
00003FFF FF 7F
00004000 81 80 00
00100000 C0 80 00
001FFFFF FF FF 7F
00200000 81 80 80 00
08000000 C0 80 80 00
0FFFFFFF FF FF FF 7F
Inscris-toi sur Exercism pour apprendre et maîtriser Elixir avec 58 concepts168 exercices, et un vrai mentorat humain, le tout gratuitement.