Sinta-se livre para passar por ele se já o conhecer.
Vou passar bem rápido por esse tema, ele é simples demais para perdermos tempo nele.
Um sistema numérico, é uma representação visual de uma contagem seqüencial.
Cada símbolo representa o número seguinte a ser contado, quando não há mais símbolos nós repetimos o segundo da seqüência ao lado esquerdo do número que estamos escrevendo e voltamos o número inicial ao seu primeiro símbolo.(famoso esquema do “vai um”)
A base que normalmente usamos para representar números é a decimal, logo nós temos:
1, 2, 3, 4, 5, 6, 7, 8, 9 e 10
Certo?
Errado!
0, 1, 2, 3, 4, 5, 6, 7, 8 e 9
É a seqüência certa...
Quando chegamos o no número nove (9) nós voltamos ao zero (0) e colocamos um ao seu lado para representar que já ultrapassamos da nossa seqüência uma vez e assim em diante.
Isso é fácil, mas é a base para qualquer base numérica, como a binária.
A base binária só tem dois números, o zero e o um e subseqüentemente segue a mesma lógica que a decimal para representar os mesmos números...
Vamos ver algumas representações em binário
Binário | Decimal
0 | 0
1 | 1
10 | 2
11 | 3
100 | 4
101 | 5
110 | 6
111 | 7
1000 | 8
1001 | 9
1010 | 10
Parece bobeira de tão fácil, e é. Lolz
Geralmente nós temos que trocar de uma base para outra... Para trocar da base decimal para a binária e vice-versa eu uso uma tabela comum para técnicos e engenheiros eletrônicos, mas pouco comum no mundo da informática.
Ela é lógica e bem simples.
Vou fazer um exemplo da conversão do número 9 para binário utilizando ela.
16 | 8 | 4 | 2 | 1 <- cabeçalho
0 | 1 | 0 | 0 | 1
Essa tabela é composta por um cabeçalho, esse cabeçalho define colunas baseando-se em potencias de dois:
2 ^ 0 (^ significa “elevado a”) = 1
2 ^ 1 = 2
2 ^ 2 = 4
2 ^ 3 = 8
Esse cabeçalho pode ter quantos números você desejar.
Depois o que fazemos é pegar o número do cabeçalho que mais se aproxima do número que queremos transformar pra binário( 9 ), no nosso caso pegamos o oito. Depois nós pegamos um número que possamos somar com o oito para se tornar nove.( o um/1) Nas colunas dos números que nós pegamos nós colocamos o número um (1), em todas as outras, zero.
Vamos transformar o número 512 em binário para treinarmos. (PS: essa tabela é ótima para fazer em concursos porque ela é rápida e prática, melhor do que dividir milhares de vezes por dois e pegar o resto)
512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0
Isso mesmo! Como já achamos o 512 de primeira, o resto é tudo zero... Acreditem, da outra maneira vocês iriam gastar muito tempo dividindo por dois até o final de suas vidas. Lolz
E se o número fosse 511.. bem como temos um número antes de uma potencia de dois, é só marcar 1 em todas as colunas anteriores.. vejam:
512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
111111111 é a resposta... Se quiserem somar todos os números anteriores com a calculadora de seus computadores verão que eu estou certo. E para fazer o processo inverso?! Isso é, transformar um número binário em decimal? Usamos nossa tabela novamente. Digamos que queiramos converter o número 111 para decimal...
8 | 4 | 2 | 1 <- cabeçalho
0 | 1 | 1 | 1
Agora é só somarmos os números que estão acima de cada 1 binário...
4+2 = 6
6 + 1 = 7
E pronto.
Nós também temos a base hexadecimal, que tem a seguinte seqüência simbólica: 0 1 2 3 4 5 6 7 8 9 A B C D E F Com ‘A’ representando o ‘10’, ‘B’ o ‘11’, ‘C’ o ‘12’ e assim por diante... Converter binário para hexadecimal e vice-versa é muito simples.
O maior número individual hexadecimal é igual ao maior número contido em um nibble(4 casas binárias/ 1 1 1 1) Então, cada número hexadecimal, nós convertemos para um nibble.. por exemplo “FF”(255) O primeiro F é o mesmo que 15 em decimal e corresponde ao nibble 1 1 1 1 e o segundo outra sequencia de quatro 1’s.
Logo, 1 1 1 1 1 1 1 1.
Só mais uma para termos um melhor idéia da operação..
O número A1 para binário vira
A 1
1010 0001
Eu normalmente faço a transformação de hexadecimal para decimal usando o deslocamento extra para não ter que ficar multiplicando fatores de 16.
Por exemplo o FF.
F = 15
E um dos F’s está uma casa a frente do primeiro.
150 > uma casa decimal acescentada + 15 = 165
O deslocamento é 90(15 * 6).
Logo, 90 + 165 = 255
Eu gosto dessa maneira porque me permite fazer de cabeça.. no entanto meus amigos acham ela de uma dificuldade absurda, talvez porque eu tenha criado ela de cabeça a um bom tempo atrás e acaba ficando mais fácil pra mim que visualizei a lógica por trás da conta do que para quem não visualizou a mesma. \=
Então não vou me ater a ela tanto assim.Vamos a técnica mais popular.Cada casa hexadecimal corresponde a uma quantidade de vezes que nós passamos dos 16 símbolos.
Logo, em FF
Nós temos
F x 16^0
+
F x 16^1
O que dá 255.
O procedimento contrário(transformar números decimais em hexadecimais se dá através de divisões consecutivas do número por 16 até não podermos mais dividir o resultado.
Let’s see it.
255 / 16 = 15,9375
15 é igual a F.
Ai nós multiplicamos o resto
0,9375 x 16 = 15
15 é F também, logo ‘FF’.
Para quem não entendeu, é porque eu realmente estou correndo... Infelizmente nem sempre a minha explicação é o suficiente, então se sinta à vontade para procurar em outros lugares a explicação sobre essa mesma matéria, eu pessoalmente recomendo esse link>
http://www.numaboa.com.br/informatica/oiciliS/assembler/textos/binHexPort.php
Clique aqui para ler a continuação
Nenhum comentário:
Postar um comentário
><))).>