Conversão de códigos e sistemas numéricos

Neste texto iremos aprender a trabalhar com conversão de sistemas numéricos (Binário, Decimal e Hexadecimal), facilitando a compreensão do usuário sobre as operações computacionais.

[ Hits: 199.829 ]

Por: Mateus Evangelista Oliveira Pereira em 30/04/2008


Introdução



Dentro da computação o sistema de numeração binário é o mais importante dentro dos sistemas digitais.

O sistema de numeração decimal é importante por que é conhecido e compreendido universalmente no caso de representar quantidades fora de qualquer sistema digital. Um exemplo seria se você digitar um número com base decimal em uma calculadora ou computador o circuito interno dessas máquinas o transforma em binário para depois converter em seu valor decimal equivalente.

Da mesma forma acontece de um numero binário dentro do sistema digital tem de ser transformado em binário para ser representado ao "mundo externo".

O sistema de numeração hexadecimal serve basicamente para compactar um número binário, pois há números binários muito extensos que em certos casos podem atrapalhar ou até mesmo atrasar a compreensão do circuito interno.

OBS: Este artigo funciona somente como uma introdução a conversão de sistemas numéricos, por isso não está sendo totalmente detalhado, qualquer duvida mandem-me um e-mail: revoltado@gmail.com.

Legenda:

Quando tiver uma operação como por exemplo:

2^4 => significa uma potência 4 é o expoente.

2 / 2 => significa divisão.

A única referencia bibliográfica para a construção desse testo foi o Livro: Sistemas Digitais 10ª edição.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Conversão de binário para decimal
   3. Conversão de decimal para binário
   4. Sistema de numeração HEXADECIMAL
   5. Conversão hexa em decimal
   6. Conversão de decimal em hexa
   7. Conversão de hexa em binário
   8. Conversão de binário em hexa
Outros artigos deste autor

Configurando o Bandwithd (monitoração gráfica)

Leitura recomendada

FeniX Linux - Conhecendo o que é Nosso

diff e patch - Um guia sem hora pra acabar

Projeto Linux nas escolas públicas

Linux: kernel e distribuições

Linux, porque não?

  
Comentários
[1] Comentário enviado por stremer em 30/04/2008 - 16:46h

cara.
Só uma observação:
Quando você fala: O sistema de numeração hexadecimal serve basicamente para compactar um número binário, pois há números binários muito extensos que em certos casos podem atrapalhar ou até mesmo atrasar a compreensão do circuito interno.

esta incorreto, pois o circuito interno trabalha totalmente em modo binário. O hexadecimal é apenas uma representação da base 16, e na verdade o circuito interno trabalha com sequencias de bits (base 2) e por este motivo é utilizado o hexadecimal, para lidar com todas as opções nesta sequência. A velha história do byte que tem 8 bits.

[2] Comentário enviado por r3v0lt4d0 em 30/04/2008 - 17:02h

stremer mas o intuito do artigo é apenas demonstrar as conversões entre sistemas numéricos e não mostrar o funcionamento de um circuito lógico...


mas mesmo assim obrigado pela comentário!

[3] Comentário enviado por stremer em 30/04/2008 - 17:18h

sim, o artigo esta bom, leve isto como critica construtiva, pois é um artigo bem legal para quem não sabe oque significa 0D0A ou 00FF9B, foi somente uma correção para evitar confusão. Eu mesmo ja falei mta besteira pq li alguma besteira em algum lugar, por isso acho importante corrigir os erros dos artigos. Abs

[4] Comentário enviado por f_Candido em 30/04/2008 - 17:44h

Legal o artigo, parabéns.
Bem diferente.

Abraços

[5] Comentário enviado por elgio em 02/05/2008 - 15:22h

Uma utilidade do HEXA que eu sempre explico em Algoritmos!

Um número inteiro não cabe em 1 bytes, logo "se espalha" por vários bytes (atualmente 4 bytes no Linux 32 bits). Se eu faço isto:

char a;
int b;

b = 1000;

a = b;

b que é de 32 bits não cabe em a que é 8 bits. Logo o C colocará apenas o byte que cabe, ou seja, dos 4 bytes que foram usados para representar 1000, apenas o bytes MENOS SIG será atribuído a variável A.

O que A teria?

Devo eu converter 1000 para BINÁRIO em 32 bits e colocar os 8 menos em A?

Bom, se eu converter para HEXA, fica mais fácil:

1000 = 00 00 03 E8

Em HEXA cada LETRA é justamente 4 bits e 2 são 8 bits. Logo apenas o E8 entrará em A que em decimal significa 232. Logo, a variável A recebe 232 (mas se eu fizer um printf("%d\n", a) sairá -24 (coisa de complemento de 2, mas ai já seria outro artigo ;-)

Ou seja:

b = 1000;
a = b;

a tem agora -24 (hehehehehe)

[6] Comentário enviado por r3v0lt4d0 em 02/05/2008 - 22:20h

elgio cara uma ótima idéia sua cara..
eu pretendo construir outro texto aprofundando mais um pouco os conhecimentos da galera... tipo mencionar o código BCD e o Gray e mais outras coisas se topar reunir umas idéias comigo entra em contanto cara!

abraços!

[7] Comentário enviado por elgio em 04/05/2008 - 19:27h

Beleza!

Eu gosto muito de confrontar meus alunos com as pegadinhas numéricas, para que eles entendam!!

Por exemplo, em C:

char a;

a = 128;

if (a > 0)
printf("A MAIOR\n");
else
printf("A MENOR\n");

SEMPRE VAI IMPRIMIR O ELSE!!
Pois quando eu fiz

a = 128 (a = 1000 0000)
Isto na verdade eh a representacao de um negativo pois eu declarei char e nao unsigned char. A tem -128

Segue isto como ideia de um proximo artigo:

- complemento de 1 e de 2

- sinal magnetude (pois eh usada na representacao de pontos flutuantes no Intel)

- ponto flutuante (eh legal! Pode ser que não resolva o problema de ninguém , mas cultura é sempre cultura!

- pegadinhas de conversão, principalmente em C (já que linguagens de mais alto nivel irão evitar muitas delas).

[]'s

[8] Comentário enviado por Apantropo em 28/03/2009 - 22:12h

Há um site muito bom que converte binário passo a passo:

http://www.calculadoraonline.com.br/view/conversao-binario-passo-a-passo.php


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts