Aprenda Hardware

  • Página Inicial
  • Contato!
  • Tudo sobre Hardware Parte 1!
  • Tudo sobre Hardware Parte 2!
  • Tudo sobre Hardware Parte 3!
  • Tudo sobre Hardware Parte 4!
  • Tudo sobre Hardware Parte 1

    Notação Posicional

    Vamos considerar um número genérico, como 3785, que lemos como três mil, setecentos e oitenta e cinco, esse sistema numérico é o decimal, que os humanos aprendem desde criança, até pelo fato do ser humano ter dez dedos, o que facilitou a aprendizagem da contagem desde o começo da humanidade.

    No número 3785, vamos considerar que temos quatro números, o 3 vale três mil, o 7 vale setecentos, o 8 vale oitenta e o 5 é o único que realmente vale 5, dessa forma, podemos escrever o mesmo número assim:

    
    3785:
    
    3 × 1000
    7 × 100
    8 × 10
    5 × 1
    
    

    A base decimal, obviamente, é representada pela base 10, e por isso podemos potências para definir um número, assim:

    
    3785:
    
    3 × 103
    7 × 102
    8 × 101
    5 × 100
    
    

    PS: Lembrando que por regra, qualquer número elevado à zero retorna 1.

    Ou seja, a soma do 3785 seria o mesmo que:

    
    3785:
    
    3000
    700
    80
    5
    
    

    No caso, o decimal é algo que nós identificamos naturalmente, mas o computador não trabalha só com esse sistema, por isso é importante identificar a base numérica.

    Lembrando a matemática básica, os números são trabalharamos com unidades, dezenas, centena, milhar, etc., isso é chamado de notação posicional, onde cada algarismo tem sua posição específica e um valor diferente dentro de um número (tipo o 3 em 3785 que representa 3000).

    PS: Esse negócio de unidade, dezena, centena, etc., só funciona em decimal.

    Pegando outro exemplo em decimal, 2004, separando o milhar, centena, dezena e unidade, dessa forma:

    
    2004:
    
    2 = 2 × 103 = 2 × 1000
    0 = 0 × 102 = 0 × 100
    0 = 0 × 101 = 0 × 10
    4 = 4 × 100 = 4 × 1
    
    

    Lembrando que as potências começam a ser contado do zero, pela unidade,

    Veja outro exemplo com 123:

    
    123:
    
    1 = 1 × 102 = 1 × 100
    2 = 2 × 101 = 2 × 10
    3 = 3 × 100 = 3 × 1
    
    

    Assim como sabemos, temos acima da casa de milhar, a dezena de milhar, centena de milhar, milhão, dezena de milhão, centena de milhão, bilhão, etc., quanto maior o número, mais casas decimais, obviamente.

    Vamos pegar um exemplo mais longo, por exemplo 134690:

    
    134690:
    
    1 = 1 × 105 = 1 × 100000
    3 = 3 × 104 = 3 × 10000
    4 = 4 × 103 = 4 × 1000
    6 = 6 × 102 = 6 × 100
    9 = 9 × 101 = 9 × 10
    0 = 0 × 100 = 0 × 1
    
    

    A potência começa do primeiro algarismo (unidade) com a potência 100, depois a dezena com 101, 102 e assim por diante, até infinitas combinações.

    Os números em decimal nós reconhecemos naturalmente (como o 3785), mas podemos reconhecê-lo também como (3785)10.

    Mas até aí, não vimos muita coisa de novo, já que o sistema decimal é o que os humanos entendem, já as máquinas (computador, televisão, celular, etc.) entendem o sistema binário.

    Basicamente, os sistemas agem assim:

    No caso, nós teremos que criar uma relação entre os dois sistemas numéricos, para que humanos e máquinas possam interagir entre si.

    Vamos contar alguns números em decimal assim:

    
    0 1 2 3 4 5 6 7 8 9
    
    

    No caso acima, acabou as opções a serem usadas pela unidade, aí colocaremos o 1 na dezena e reiniciar na unidade assim:

    
    10 11 12 13 14 15 16 17 18 19
    
    

    E assim sucessivamente até chegar em 99, daí colocaremos 1 na centena e reiniciamos a dezena e unidade (100) até chegar as combinações possível (199), aí vamos pra 200 até 299 e sucessivamente até 999, e fazemos da mesma forma com 1000 até um número infinito.

    Em outras palavras, quando acaba a combinação entre os números de todas as casas, uma a esquerda é adicionada.

    Isso daí, pra qualquer um é bem óbvio, mas essa forma também é usada para outros sistemas, vamos contar em binário, que só tem dois dígitos:

    No caso, o binário, obviamente, usa a base 2, ficando assim:

    
    0 1
    
    

    Só nisso acima acabou as possiblidades da primeira casa, tendo que prosseguir colocando 1 na segunda casa:

    
    10 11
    
    

    PS: No binário e em outras bases não existe nomenclaturas como unidade, dezena e etc., são identificados apenas como primeira casa, segunda casa e etc. (contando da direita pra esquerda), por isso também não leia 10 como "dez" ou 11 como "onze", em binário se lê "um-zero" e "um-um", respectivamente, isso vale pra qualquer número em binário.

    Da mesma forma, a medida que for acabando as combinações, colocamos mais uma casa a esquerda, veja abaixo prosseguindo esse raciocínio:

    
    100 101 110 111
    
    

    E prosseguindo:

    
    1000 1001 1010 1011 1100 1101 1110 1111
    
    

    Da mesma forma:

    
    10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111
    
    

    E assim sucessivamente.

    Da mesma forma que fizemos com os decimais, podemos usar a base 2 para converter binários em decimais, assim:

    
    1011:
    
    1 = 1 × 23 = 1 × 8 = 8
    0 = 0 × 22 = 0 × 4 = 0
    1 = 1 × 21 = 1 × 2 = 2
    1 = 1 × 20 = 1 × 1 = 1
    
    8 + 0 + 2 + 1 = 11
    
    

    Dessa forma é fácil converter binário em decimal, sempre lembrando do resultado das potências pra cada casa, a posição onde encontra o 1 é somada, a posição onde encontra 0 é ignorada, e a soma de todos retorna o decimal.

    Da mesma forma:

    
    1001:
    
    1 = 1 × 23 = 1 × 8 = 8
    0 = 0 × 22 = 0 × 4 = 0
    0 = 0 × 21 = 0 × 2 = 0
    1 = 1 × 20 = 1 × 1 = 1
    
    8 + 0 + 0 + 1 = 9
    
    

    PS: Os números na base 2 são representados, por exemplo, como (1001)2.

    Números Binários

    Como sabemos, os aparelhos eletrônicos usam sistema binário, já que eles trabalham com pulsos elétricos, que justamente é representado por binário (que trabalha por padrões como ligado/desligado), e eles são convertidos para que a gente possa entender.

    Ramos como Hardware e Redes necessita muito de uso de sistemas numéricos diferente, como o binário e o hexadecimal.

    Como visto, existe uma ligação entre os sistemas numéricos decimal e binário, até porque a matemática é uma ciência exata.

    Veja um exemplo de conversão de binário para decimal:

    
    1101:
    
    1 = 1 × 23 = 1 × 8 = 8
    1 = 1 × 22 = 1 × 4 = 4
    0 = 0 × 21 = 0 × 2 = 0
    1 = 1 × 20 = 1 × 1 = 1
    
    8 + 4 + 0 + 1 = 13
    
    

    Isso já vimos anteriormente, é só pra relembrar.

    Mas temos um macete bem simples para converter binário em decimal facilmente, é só lembrar dos resultados das potências na ordem das casas numéricas, 1, 2, 4, 8, 16, 32, etc., por exemplo:

    16 8 4 2 1
    1 0 0 1 1

    No caso acima, podemos simplesmente ignorar os resultados de potências que tem 0 e somar os que tem apenas 1, dessa forma, pro mesmo número acima:

    
    16 + 0 + 0 + 2 + 1 = 19
    
    

    Dessa forma, o número 10011 (não leia dez mil e onze, é um zero zero um um) convertido para decimal é igual a 19.

    Já o contrário, ou seja, converter em decimal pra binário (por exemplo, o 13 na base 10), é fazendo divisão inteira, dessa forma:

    
    Primeira casa:
    13 | 2 
     1   6
    
    Segunda casa:
    6 | 2 
    0   3
    
    Terceira casa:
    3 | 2 
    1   1
    
    Quarta casa:
    1 | 2 
    1   0
    
    

    Ou seja, vamos dividindo até não dar mais (ou seja, o resultado ser zero), no caso da divisão inteira, 1 dividido por 2 o resultado é zero e sobra 1 (até porque nesse caso não dá pra dividir um por 2), e 0 dividido por 2 é 0 e sobra 0. Essa regra existe sempre quando o numerador é menor que o denominador.

    Aí, pegamos o número de baixo pra cima, o primeiro resto (mais abaixo) é o primeiro dígito (à esquerda), e o último resto (na casa mais acima), é o último dígito (à direita). No caso, o 13 em binário é 1101.

    Temos também um macete para converter um número decimal em binário, usando cada casa com a potência numérica em cima também:

    8 4 2 1

    No caso, basta somar os resultados das potências acima até ver se elas retornam o número, no caso, 8 + 4 + 1.

    Aí basta colocar o 1 onde tem os números somadas, e 0 onde não tem, assim:

    8 4 2 1
    1 1 0 1

    Veja outro exemplo com 40 na base 10:

    32 16 8 4 2 1
    1 0 1 0 0 0

    No caso, a soma de 32 + 8 retornou 40, que no binário é 101000.

    Para provar, fazemos a reconversão de binário pra decimal:

    
    101000:
    
    1 = 1 × 25 = 1 × 32 = 32
    0 = 0 × 24 = 0 × 16 = 0
    1 = 1 × 23 = 1 × 8 = 8
    0 = 0 × 22 = 0 × 4 = 0
    0 = 0 × 21 = 0 × 2 = 0
    0 = 0 × 20 = 0 × 1 = 0
    
    32 + 0 + 8 + 0 + 0 + 0 = 40
    
    

    Números Octais e Hexadecimais

    Como visto até agora, dois sistemas numéricos usados são o decimal, usado pelos humanos, e o binário, usado pelas máquinas, mas ainda tem outros sistemas utilizados na área de TI, no caso, veremos o sistema octal e hexadecimal.

    Números de IPv6 e MAC, ou hashs, são usados em hexadecimal, por exemplo. Códigos de erros em jogos ou de memória, ou permissões em Linux, são usados em octal.

    Basicamente, o sistema octal é de 0 a 7 (eliminando o oito, assim como o binário elimina o dois e o decimal só vai até nove). O sistema hexadecimal vai de 0 a 9 e depois tem seis letras de A a F (que não são lidos como letras do alfabeto). Veja abaixo os algarismos dessas bases:

    PS: Nos números octais e hexadecimais, assim como os binários, as casas também não são contadas por unidades, dezenas e etc, e não se lê coisas como "dez mil, cento e onze".

    Vamos relembrar o número 2004 em decimal:

    
    2004:
    
    2 = 2 × 103 = 2 × 1000
    0 = 0 × 102 = 0 × 100
    0 = 0 × 101 = 0 × 10
    4 = 4 × 100 = 4 × 1
    
    

    Isso acima é nada mais do que a notação posicional.

    Da mesma forma, a notação é usada para qualquer base, lembrando do binário:

    
    1101:
    
    1 = 1 × 23 = 1 × 8 = 8
    1 = 1 × 22 = 1 × 4 = 4
    0 = 0 × 21 = 0 × 2 = 0
    1 = 1 × 20 = 1 × 1 = 1
    
    8 + 4 + 0 + 1 = 13
    
    

    Vamos ver por exemplo, a notação posicional em octal (base 8), no caso, o 371:

    
    371:
    
    3 = 3 × 82 = 3 × 64 = 192
    7 = 7 × 81 = 7 × 8 = 56
    1 = 1 × 80 = 1 × 1 = 1
    
    192 + 56 + 1 = 249
    
    

    No caso acima, 371 na base 8 (leia três sete um em octal) é o mesmo que 249 em decimal (esse pode ser lido duzentos e quarenta e nove). A base 8 pode ser lida como, por exemplo, (371)8.

    Agora, no sistema hexadecimal (base 16), é bom lembrar primeiramente que os caracteres A, B, C, D, E e F são o mesmo que 10, 11, 12,13, 14 e 15 em decimal.

    Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
    Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F

    Vamos ver um exemplo de um número em hexadecimal, por exemplo, o 1FA:

    
    1FA:
    
    A = 10
    F = 15
    
    1 = 1 × 162 = 1 × 256 = 256
    F = 15 × 161 = 15 × 16 = 240
    A = 10 × 160 = 10 × 1 = 10
    
    256 + 240 + 10 = 506
    
    

    No caso acima, 1FA na base 16 (leia um efe a) é o mesmo que 506 em decimal (esse pode ser lido quinhentos e seis). Os números em hexadecimal podem ser lido, como por exemplo, (1FA)16.

    Veja outro exemplo, com 1257 na base 8:

    
    1257:
    
    1 = 1 × 83 = 1 × 512 = 512
    2 = 2 × 82 = 2 × 64 = 128
    5 = 5 × 81 = 5 × 8 = 40
    7 = 7 × 80 = 7 × 1 = 7
    
    512 + 128 + 40 + 7 = 687
    
    

    No caso acima, o 1257 em octal é o mesmo que 687 em decimal.

    Veja também outro exemplo, com 13C2 na base 16:

    
    13C2:
    
    C = 12
    
    1 = 1 × 163 = 1 × 4096 = 4096
    3 = 3 × 162 = 3 × 256 = 768
    C = 12 × 161 = 12 × 16 = 192
    2 = 2 × 160 = 2 × 1 = 2
    
    4096 + 768 + 192 + 2 = 5058
    
    

    No caso acima, o 13C2 em hexadecimal é o mesmo que 5058 em decimal.

    Dessa mesma forma, é possível fazer conversões de números de qualquer base, inclusive de bases não citadas como base 7 ou base 3.

    Como visto anteriormente, podíamos converter decimal em binário fazendo divisões inteiras, dessa forma:

    
    Primeira casa:
    13 | 2 
     1   6
    
    Segunda casa:
    6 | 2 
    0   3
    
    Terceira casa:
    3 | 2 
    1   1
    
    Quarta casa:
    1 | 2 
    1   0
    
    

    Da mesma forma, podemos converter decimal em octal, como podemos ver com o número 177 em decimal:

    
    Primeira casa:
    177| 8 
      1  22
    
    Segunda casa:
    22 | 8 
     6   2
    
    Terceira casa:
    2 | 8 
    2   0
    
    

    Da mesma forma, vamos dividindo até não dar mais (ou seja, o resultado ser zero), no caso da divisão inteira, quando o numerador é menor que o denominador, o resultado é zero e o resto é igual ao numerador.

    Aí, da mesma forma, pegamos o número de baixo pra cima, o primeiro resto (abaixo) é a primeira casa (à esquerda), e o último resto (na casa mais acima), é o último dígito (à direita). No caso, o 177 em octal é 261.

    Para vermos que está certo, vamos reconverter o octal em decimal:

    
    261:
    
    2 = 2 × 82 = 2 × 64 = 128
    6 = 6 × 81 = 6 × 8 = 48
    1 = 1 × 80 = 1 × 1 = 1
    
    128 + 48 + 1 = 177
    
    

    A forma para converter decimal em hexadecimal é a mesma, como podemos ver com o número 685 em decimal:

    
    Primeira casa:
    685| 16 
     13  42
    
    13 = D
    
    Segunda casa:
    42 | 16 
    10   2
    
    10 = A
    
    Terceira casa:
    2 | 16 
    2   0
    
    

    Aí, da mesma forma, pegamos o número de baixo pra cima, o primeiro resto (abaixo) é a primeira casa (à esquerda), e o último resto (na casa mais acima), é o último dígito (à direita), e tudo que retornar de 10 e 15 trocamos por A a F. No caso, o 685 em hexadecimal é 2AD.

    Para vermos que está certo, vamos reconverter o hexadecimal em decimal:

    
    2AD:
    
    A = 10
    D = 13
    
    2 = 2 × 162 = 2 × 256 = 512
    A = 10 × 161 = 10 × 16 = 160
    D = 13 × 160 = 13 × 1 = 13
    
    512 + 160 + 13 = 685
    
    

    Podemos também converter outras bases, por exemplo, para hexadecimal em binário, vamos converter o 1E na base 16.

    Primeiro, convertermos o 1E para decimal, assim:

    
    1E:
    
    E = 14
    
    1 = 1 × 161 = 1 × 16 = 16
    E = 14 × 160 = 14 × 1 = 14
    
    16 + 14 = 30
    
    

    E depois, convertemos o resultado decimal para binário:

    
    Primeira casa:
    30 | 2 
     0   15
    
    Segunda casa:
    15 | 2 
     1   7
    
    Terceira casa:
    7 | 2 
    1   3
    
    Quarta casa:
    3 | 2 
    1   1
    
    Quinta casa:
    1 | 2 
    1   0
    
    

    Daí é só organizar, e veremos que 1E na base 16 é igual a 11110 na base 2. Dessa forma podemos ver que existe relação entre os sistemas numéricos.

    No caso, o sistema decimal serviu de ponte para conversões, isso pode ser usado para qualquer conversão, como de octal para hexadecimal, por exemplo.