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

separando a intro da definicao
(split baseN and baseNh)
(separando a intro da definicao)
Linha 1: Linha 1:
[[Arquivo:Code-PositionalNotation-Terms.png|miniaturadaimagem|300px|Termos utilizados na notação posicional de códigos. Em texto: {{baseNh|0125|8h}} ou  [0125]<sub>8h</sub>.]]
[[Arquivo:Code-PositionalNotation-Terms.png|miniaturadaimagem|300px|Termos utilizados na notação posicional de códigos. Em texto: {{baseNh|0125|8h}} ou  [0125]<sub>8h</sub>.]]
<!--
Os [[Código natural|códigos naturais]] formam um conjunto munido de hierarquia e de uma ordem compatível com a sua hierarquia. Seus elementos podem ser representados por [[Cadeia de bits|cadeias de bits]], e, vice-versa, toda cadeia de bit pode ser associada a um código.


<!--
A '''notação posicional em base-Nh''' para a representação compacta de [[código natural|códigos naturais]] é um modo de representação, adaptado das convenções da [[wikipedia:Positional notation|notação posicional numérica]]. Por exemplo o código {{baseNh|0125|8h}} não deve ser confundido com o número 125 decimal: a base não é 10 e por ter sufixo "h", ''8h'', deve ser interpretado como código, com seus zeros a esquerda.
A '''notação posicional em base-Nh''' para a representação compacta de [[código natural|códigos naturais]] é um modo de representação, adaptado das convenções da [[wikipedia:Positional notation|notação posicional numérica]]. Por exemplo o código {{baseNh|0125|8h}} não deve ser confundido com o número 125 decimal: a base não é 10 e por ter sufixo "h", ''8h'', deve ser interpretado como código, com seus zeros a esquerda.


Linha 8: Linha 9:
Para não confundir o "agente 7" com o "agente 007" destacamos {{baseNh|007|10rh}}. O sufixo "rh" na base significa “''r''estricted ''h''iearchy”, pois ao permitir zeros a esquerda está permitindo também a expressão de hierarquias, porém, restrita por não comportar todos os códigos naturais na base 10 (de fato não existe base 10''h'' somente 10''rh'').
Para não confundir o "agente 7" com o "agente 007" destacamos {{baseNh|007|10rh}}. O sufixo "rh" na base significa “''r''estricted ''h''iearchy”, pois ao permitir zeros a esquerda está permitindo também a expressão de hierarquias, porém, restrita por não comportar todos os códigos naturais na base 10 (de fato não existe base 10''h'' somente 10''rh'').
-->
-->
[[Cadeia de bits|Cadeias de bits]] são a forma mais simples para se registrar números ou códigos, mas para o ser humano elas são muito longas e difíceis de ler. No caso dos números naturais existe a  [[wikipedia:Positional notation|notação posicional em base&nbsp;''N'']], mais compacta que a representação binária para qualquer&nbsp;''N''>2. Por exemplo o conjunto <math>P_k</math> dos números naturais de ''k''&nbsp;bits podem ser representados pela base&nbsp;3, base&nbsp;4, ..., até base&nbsp;''N'', com&nbsp;<math>N \le 2^k</math>.
[[Cadeia de bits|Cadeias de bits]] são a forma mais simples para se registrar números ou códigos naturais, mas para o ser humano elas são muito longas e difíceis de ler. No caso dos números existe a  [[wikipedia:Positional notation|notação posicional em base&nbsp;''N'']], mais compacta que a representação binária para qualquer&nbsp;''N''>2.
 
A notação numérica pode ser facilmente adaptada para expressar códigos naturais. Exemplos:
 
{| class="wikitable"
|'''Notação / Característica'''
|'''Código'''
|'''Número'''
|'''Código'''
|'''Número'''
|-
|[[wikipedia:Binary number|Base 2. Binária]] / Ilegível ||<code>00010010</code>||10010  || <code>1111</code> || 1111
|-
|[[wikipedia:Quaternary numeral system|Base 4. Quaternaria]] / Melhorou! ||<code>0102</code>||102 || <code>33</code> || 33
|-
|[[wikipedia:Hexadecimal|Base 16. Hexadecimal]] / Mais compacta ||<code>12</code>||12 || <code>f</code> || f
|}
 
Alguns cuidados devem ser tomados, por exemplo no tratamento dos zeros a esquerda, importante diferenciador de códigos.
E existem ainda códigos que não podem ser representados em certas bases. Por exemplo o código <code>010</code> a rigor não pode ser representado na base 4. Uma representação alternativa, base 4h, permite e é definida a seguir.
 
== Definição ==
O conjunto <math>P_k</math> dos números naturais de ''k''&nbsp;bits, por exemplo, pode ter seus elementos representados pela base&nbsp;3, base&nbsp;4, ..., até base&nbsp;''N'', com&nbsp;<math>N \le 2^k</math>.


O conjunto dos [[Código natural|códigos naturais de zero a ''k''&nbsp;bits]], <math>X_k = P_k \cup X_{k-1}</math>, pode também ser representado de maneira compacta, através de uma adaptação da notação numérica, nas seguintes situações:
O conjunto dos [[Código natural|códigos naturais de zero a ''k''&nbsp;bits]], <math>X_k = P_k \cup X_{k-1}</math>, pode também ser representado de maneira compacta, através de uma adaptação da notação posicional numérica, nas seguintes situações:


* '''Códigos base N''': permite a representação de códigos de ''u''&nbsp;bits, com <math>u \le k</math> e valores de ''u'' múltiplos de <math>log_{N}(2)</math>; mapeados no conjunto <math>\bigcup P_u</math> de números de ''u'' bits. A conversão numérica deve ser acrescida de zeros a esquerda (até atingir o tamanho fixo compatível com o tamanho ''u'' da origem). <br/>A restrição dos múltiplos pode ser expressa como <math>u~\bmod log_{2}(N) = 0</math>. <br/>Por exemplo base&nbsp;4 permite valores de ''u'' restritos por <math>u~\bmod~2 = 0</math>, portanto permite representar o conjunto de códigos com ''u'' par: <math>P_0  \cup  P_2  \cup  P_4 \cup \dots \cup P_k</math>. Quanto à notação textual, nesta Wiki distinguimos o código {{baseNh|007|8}}≠{{baseNh|7|8}} do número [007]<sub>8</sub>=[7]<sub>8</sub> pelo uso da <code>fonte</code> e dos colchetes.
* '''Códigos base N''': permite a representação de códigos de ''u''&nbsp;bits, com <math>u \le k</math> e valores de ''u'' múltiplos de <math>log_{N}(2)</math>; mapeados no conjunto <math>\bigcup P_u</math> de números de ''u'' bits. A conversão numérica deve ser acrescida de zeros a esquerda (até atingir o tamanho fixo compatível com o tamanho ''u'' da origem). <br/>A restrição dos múltiplos pode ser expressa como <math>u~\bmod log_{2}(N) = 0</math>. <br/>Por exemplo base&nbsp;4 permite valores de ''u'' restritos por <math>u~\bmod~2 = 0</math>, portanto permite representar o conjunto de códigos com ''u'' par: <math>P_0  \cup  P_2  \cup  P_4 \cup \dots \cup P_k</math>. Quanto à notação textual, nesta Wiki distinguimos o código {{baseNh|007|8}}≠{{baseNh|7|8}} do número [007]<sub>8</sub>=[7]<sub>8</sub> pelo uso da <code>fonte</code> e dos colchetes.
2 402

edições