terça-feira, 19 de março de 2013

Sistema de numeração binário


                                                  Sistema de numeração binário


O sistema binário ou de base 2 é um sistema de numeração posicional em que todas as quantidades se representam com base em dois números, ou seja, zero e um (0 e 1).[1][2]
Os computadores digitais trabalham internamente com dois níveis de tensão, pelo que o seu sistema de numeração natural é o sistema binário (aceso, apagado).[3] Com efeito, num sistema simples como este é possível simplificar o cálculo, com o auxílio da lógica booleana. Em computação, chama-se um dígito binário (0 ou 1) de bit, que vem do inglês Binary Digit. Um agrupamento de 8 bits corresponde a um byte (Binary Term). Um agrupamento de 4 bits, ainda, é chamado de nibble.
Um processador é formado por milhares de blocos lógicos complexos, formados por portas lógicas básicas, e o funcionamento destas está amparado por um postulado fundamental a eletrônica digital que determina que um circuito opere apenas com 2 níveis de tensão bem definidos. Em um circuito digital TTL (Transistor Transistor Logic), os dois níveis de tensão padronizados são 0V (zero volt) e 5V (cinco volts). Ao projetar um sistema digital, ao invés de trabalhar com níveis de tensão trabalha-se com níveis lógicos, então, no caso do circuito TTL, 0V será representado por “0” e 5V será representado por “1”, e os níveis de tensão entre eles serão ignorados, ou seja, adotar-se-à uma faixa até a qual será considerado nível lógico zero, e a partir dela, nível lógico 1. Neste caso, de 0V a 2,5V temos “0”, e a partir daí até 5V temos “1”.
O sistema binário é base para a Álgebra booleana (de George Boole - matemático inglês), que permite fazer operações lógicas e aritméticas usando-se apenas dois dígitos ou dois estados (sim e não, falso e verdadeiro, tudo ou nada, 1 ou 0, ligado e desligado).[4] Toda a electrónica digital e computação está baseada nesse sistema binário e na lógica de Boole, que permite representar por circuitos electrónicos digitais (portas lógicas) os números, caracteres, realizar operações lógicas e aritméticas. Os programas de computadores são codificados sob forma binária e armazenados nas mídias (memórias, discos, etc) sob esse formato.
_____________________________________________________________________
Os computadores digitais trabalham internamente com dois níveis de tensão, pelo que o seu sistema de numeração natural é o sistema binário (aceso, apagado). Com efeito, num sistema simples como este é possível simplificar o cálculo, com o auxílio da lógica booleana. Em computação, chama-se um dígito binário (0 ou 1) de bit, que vem do inglês Binary Digit. Um agrupamento de 8 bits corresponde a um byte (Binary Term). Um agrupamento de 4 bits é chamado de nibble.

O sistema binário é base para a Álgebra booleana (de George Boole - matemático inglês), que permite fazer operações lógicas e aritméticas usando-se apenas dois dígitos ou dois estados (sim e não, falso e verdadeiro, tudo ou nada, 1 ou 0, ligado e desligado). Toda eletrônica digital e computação está baseada nesse sistema binário e na lógica de Boole, que permite representar por circuitos eletrônicos digitais (portas lógicas) os números, caracteres, realizar operações lógicas e aritméticas. Os programas de computadores são codificados sob forma binária e armazenados nas mídias (memórias, discos, etc) sob esse formato.
_____________________________________________________________________
A conversão entre sistemas numéricos é feita com base em algumas regras e serve para que se obtenha o valor de um elemento no sistema numérico mais adequado a cada situação. Entre os sistemas numéricos mais utilizados na computação há o binário, decimal, octal e sistema hexadecimal. Cada um destes apresentando sua própria faixa de valores possíveis, e cada um possui uma aplicação específica, dentro da Ciência da Computação.
Índice  [esconder]
1 Sistema binário
1.1 Conversão de decimal em binário
1.2 Conversão de Binário para Decimal
2 Hexadecimal
2.1 Conversão de Decimal para Hexadecimal
2.2 Conversão de Hexadecimal para Decimal
3 Octal
3.1 Conversão de Decimal para Octal
3.2 Conversão de Octal para Decimal
4 Ver também
[editar]Sistema binário

[editar]Conversão de decimal em binário
Para realizar a conversão utiliza-se o método de divisão repetida.
Para converter, por exemplo, o número decimal 1985 em binário deve-se fazer o seguinte:
Dividir o número decimal por 2. Caso o resultado seja exato, aquela divisão terá resto 0 (zero), se não for exato terá resto 1 (um). Esse valor deve ser anotado da direita para a esquerda ou como explicado abaixo do exemplo.
Deve-se dividir o número até que o quociente da divisão seja igual a 0 (zero).
Divisão           Quociente                  Resto
1985/2                  992                            1
992/2                    496                            0
496/2                    248                            0
248/2                    124                            0
124/2                      62                            0
62/2                        31                            0
31/2                        15                            1
15/2                          7                            1
7/2                            3                            1
3/2                            1                            1
1/2                            0                            1
Observe que o resultado é obtido juntando o resultado da última para a primeira divisão, ou seja, de baixo para cima, onde o resultado é o seguinte número binário: 11111000001.
Outra forma desta conversão (mais prática) é ir subtraindo o número em decimal das potências de base 2 até dar 0. Subtraia da maior potência de base 2 possível. Deve se marcar 1 quando você efetua a subtração, e 0 no restante (os zeros à esquerda devem ser desprezados).
Por exemplo:
      128 64 32 16 8 4 2 1
22 -->  0  0  0  1 0 1 1 0
Logo 22 em decimal = 10110 em binário
O maior número de base 2 possível pra ser subtraído de 22 é 16, sobrando 6. O maior número possível para subtrair de 6 é 4, sobrando 2. O maior número a ser subtraído de 2 é o próprio 2, resultando 0 e assim finalizando a conversão.
Outro exemplo:
      128 64 32 16 8 4 2 1
35 -->  0  0  1  0 0 0 1 1
logo 35 em decimal = 100011 em binário

pois: 35 - 32 = 3
3 - 2  = 1
1 - 1  = 0
Se o número em decimal é menor que zero, toma-se o valor absoluto, ex. "-5" --> "5", iniciamos o quociente com um quociente > 1, enquanto o quociente for maior que 1 faz-se consecutivamente a divisão do valor absoluto por 2 e iguala-se imediatamente a seguir o valor absoluto ao valor do quociente. Se o número de vezes em que foi possível dividir por 2 e obter um quociente > 1 for inferior a um valor múltiplo de 8 então acrescenta-se a esse número vezes o valor que for necessário para chegar ao próximo múltiplo de 8. A seguir pega-se no número de vezes e cria-se uma variável que será igual a [2^(Número de vezes)]+[número decimal negativo inicial] A seguir pega-se no valor desta variável e converte-sa para binário como visto em cima.
Se o número em decimal tiver casas decimais, ex (1.34) acrescentamos à expressão em binário um "." e considera-se um número de vezes em que se pretenda converter para binário a parte de casas decimais ex: enquanto não chegar a 50 vezes fazemos a parte com casas decimais ser multiplicada por 2, a seguir agarramos na parte à esquerda da virgula do resultado desta multiplicação e adicionamo-la à conversão em binário à direita do ".".
Em JavaScript poderia ser feito assim:
function decParaBin( numDecimal ) {
        for ( binário = []; numDecimal > 1; ) {
                resto = Math.floor( numDecimal % 2 );
                numDecimal /= 2;
                binário.unshift( resto == 1 ? 1 : 0 );
        }

        if ( !/[^0]/.test( binário.join('') ) ) binário.unshift( 1 );

        return binário.join('');
}

//Ou
x = 170;
x.toString( 2 ); //10101010
[editar]Conversão de Binário para Decimal
  1         1        1       1        1        0        0        0        0        0        1
2^10 * 1  2^9 * 1  2^8 *1  2^7 * 1  2^6 * 1  2^5 * 0  2^4 * 0  2^3 * 0  2^2 * 0  2^1 * 0  2^0 * 1
         +        +       +        +        +        +        +        +        +        +
 1024      512      256     128      64       0        0        0        0        0        1
                                              =
                                             1985
Da direita para a esquerda elevamos 2 à potência do índice e multiplicamos pelo dígito binário identificado por esse índice. Desta forma o primeiro dígito binário que encontramos é o 1 no índice 0 , assim temos: 2^0 * 1. Após realizarmos essa operação para todos os zeros para todos os dígitos, somamos o resultado. O resultado desta soma é o número que estamos buscando.
Em JavaScript:
function binParaDec( numBinário ) {
        var base2 = [],
            decimal = 0,
            binário = numBinário.toString();

        for ( i = binário.length, j = 1; --i > -1; j *= 2 ) base2.unshift( j );

        for ( i in binário ) {
                if ( binário[i] == 0 ) delete base2[i];
                else decimal += base2[i];
        }

        return decimal;
}

//Ou simplesmente
x = 10101010;
parseInt( x, 2 ); //170
_____________________________________________________________________
O sistema decimal é muito usado no cotidiano, pois nos oferece uma forma mais simples de manipular os números em determinadas situações matemáticas, é composto por dez números: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
O uso da Matemática em situações diversas não diz respeito somente ao homem, os computadores utilizam números para efetuar cálculos complexos com uma maior rapidez e praticidade. O sistema binário é usado pelos computadores é e constituído de dois dígitos o 0 e o 1. A combinação desses dígitos leva o computador a criar várias informações: letras, palavras, textos, cálculos.
A criação do sistema de numeração binária é atribuída ao matemático alemão Leibniz.

Numeração Binária e Numeração Decimal

Transformando decimal em binário

14(base10) = 1110(base2)

14 / 2 = 7 resto 0
7 / 2 = 3 resto 1
3 / 2 = 1 resto 1


36(base10) = 100100(base2)

36 / 2 = 18 resto 0
18 / 2 = 9 resto 0
9 / 2 = 4 resto 1
4 / 2 = 2 resto 0
2 / 2 = 1 resto 0

O número binário será formado agrupando o último resultado seguido dos restos das divisões anteriores.

Transformando binário em decimal

110100(base2) = 52 (base10)



1

1

0

1

0

0

casa 6

casa 5

casa 4

casa 3

casa 2

casa 1

25

24

23

22

21

20

1 x 25

1 x 24

0 x 23

1 x 22

0 x 21

0 x 20

1 x 32

1 x 16

0 x 8

1 x 4

0 x 2

0 x 1

32

16

0

4

0

0


32 + 16 + 0 + 4 + 0 + 0 = 52



1100100(base2) = 100(base10)



1

1

0

0

1

0

0

casa 7

casa 6

casa 5

casa 4

casa 3

casa 2

casa 1

26

25

24

23

22

21

20

1 x 26

1 x 25

0 x 24

0 x 23

1 x 22

0 x 21

0 x 20

1 x 64

1 x 32

0 x 16

0 x 8

1 x 4

0 x 2

0 x 1

64

32

0

0

4

0

0


64 + 32 + 0 + 0 + 4 + 0 +0 = 100.
Fonte: http://pt.wikipedia.org/wiki/Sistema_de_numera%C3%A7%C3%A3o_bin%C3%A1rio

Nenhum comentário:

Postar um comentário