Parcours
/
Elixir
Elixir
/
Exercices
/
Quantité de longueur variable
Quantité de longueur variable

Quantité de longueur variable

Moyen

Instructions

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
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Elixir Exercism

Prêt à commencer Quantité de longueur variable ?

Inscris-toi sur Exercism pour apprendre et maîtriser Elixir avec 58 concepts168 exercices, et un vrai mentorat humain, le tout gratuitement.