Trilhas
/
D
D
/
Exercícios
/
Quantidade de comprimento variável
Quantidade de comprimento variável

Quantidade de comprimento variável

Médio

Instruções

Implemente a codificação e a decodificação de quantidade de comprimento variável.

O objetivo deste exercício é implementar a codificação/decodificação VLQ.

Em resumo, o objetivo dessa codificação é codificar valores inteiros de uma forma que economize bytes. Apenas os primeiros 7 bits de cada byte são significativos (alinhados à direita, mais ou menos como um byte ASCII). Então, se você tem um valor de 32 bits, precisa desmembrá-lo em uma série de bytes de 7 bits. Claro que você vai ter um número variável de bytes, dependendo do seu inteiro. Para indicar qual é o último byte da série, você deixa o bit nº 7 zerado. Em todos os bytes anteriores, você ativa o bit nº 7.

Assim, se um inteiro está entre 0-127, ele pode ser representado como um único byte. Embora a VLQ consiga lidar com números de tamanhos arbitrários, neste exercício vamos nos restringir apenas a números que cabem em um inteiro sem sinal de 32 bits. Aqui estão exemplos de inteiros como valores de 32 bits e as quantidades de comprimento variável em que eles se transformam:

 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
Editar via GitHub O link abre em uma nova janela ou aba
D Exercism

Tudo pronto para começar Quantidade de comprimento variável?

Crie sua conta no Exercism para aprender e dominar D com 92 exercícios e mentoria humana de verdade, tudo de graça.