Discussão:Código Natural/Notação posicional: mudanças entre as edições

Linha 2: Linha 2:


== Exemplos da RFC 4648 ==
== Exemplos da RFC 4648 ==
O escopo da  RFC 4648 é a expanção de bytes para o modo textual. Partimos do valor do byte, que equivale a uma notação base256:
O escopo da  RFC 4648 é a expansão de bytes para o modo textual. Partimos do valor do byte, que '''equivale a uma notação base256''':
<pre>
<pre>
   ASCII("a")=97;  ASCII("b")=98
   ASCII("a")=97;  ASCII("b")=98
Linha 8: Linha 8:
   "fo" = 102*256 + 111 = 26112 + 111 = 26223
   "fo" = 102*256 + 111 = 26112 + 111 = 26223
</pre>
</pre>
Em seguida, a cada sequência de bytes não-múltipla da base, converte-se o equivalente numérico:
Em seguida, a cada sequência de bytes, converte-se o equivalente numérico como se fosse notação Base256:
*  {{baseNh|f|256}} = [102]<sub>10</sub> = {{baseNh|66|16}}
*  {{baseNh|f|256}} = [102]<sub>10</sub> = {{baseNh|66|16}}
*  {{baseNh|fo|256}} = [26223]<sub>10</sub> = {{baseNh|666F|16}}<br/> ou, destacando a função de conversão, BASE16({{baseNh|fo|256}}) = {{baseNh|666F|16}}
*  {{baseNh|fo|256}} = [26223]<sub>10</sub> = {{baseNh|666F|16}}<br/> ou, destacando a função de conversão, BASE16({{baseNh|fo|256}}) = {{baseNh|666F|16}}
Linha 26: Linha 26:
   BASE64("foobar") = "Zm9vYmFy"
   BASE64("foobar") = "Zm9vYmFy"
</pre>
</pre>
Como 16²=256 podemos dispensar a conversão de equivalente numérico, já que um dígito base&nbsp;256 resulta sempre exatamente em 2 dígitos base&nbsp;16. Para dispensar o equivalente numérico na conversão para base&nbsp;64 é mais complicado, precisamos esperar por 3 dígitos base&nbsp;256 para obter exatamente 4 dígitos base&nbsp;64: 256<sup>3</sup>&nbsp;=&nbsp;64<sup>4</sup>&nbsp;=&nbsp;16777216. Portanto se o número de bytes a serem convertidos para a base&nbsp;64 não for múltiplo de 3, será necessário o "padding", e o valor não preservará hierarquia.
2 435

edições