Bases Numéricas
Revisando Bases Numéricas
Dados numéricos podem ser representados através de várias bases:
Decimal
Hexadecimal
Binário
Uma base numérica é apenas uma forma de interpretar os dados, não mudando o valor armazenado
Todo número apresentado como Binário é o mesmo valor como Decimal, sem sofrer mudanças bruscas:
0001 é o mesmo que 1 só que binário
Decimal
Bom para humanos, péssimos para Desenvolvedores
Decimal é muito ruim de converter para outros valores, então nãoé eficiente para Desenvolvimento.
Decimal é bom para Humanos
, Péssimo para Desenvolvedores
.
Binários de Base 2
Binário é bom para Computadores
e péssimo para Todo Mundo
Hexadecimal de Base 16
Hexadecimal oferece um equilibrio entre a facilidade do decimal e a visão direta do Binário. Ele é excelente para guardar números muito grandes
Manipulação de Binários
Podemos transformar valores Binários em Decimais, mas para o caso de manipular bits não serve muito, mas é sempre bom relembrar:
Transformar de Binário para Decimal
Pegamos de Exemplo o valor em Binário 1011
:
Passos:
Pegamos cada Dígito do valor e númeramos a sua posição começando da
Direita
para aEsquerda
Pegamos cada posição e colocamos o 2 como Base e a Posição como Expoente da Exponenciação(
2^Posição
)Multiplicamos o Dígito da Posição com a Exponenciação e armazenamos o valor
Depois de ter sido feito em todas as posições, somamos o valor armazenado de cada posição e temos o valor em Decimal do Binário
Exemplo:
Valor =
1011
Colocamos em um Vetor:
Posição 3 | Posição 2 | Posição 1 | Posição 0 |
|
|
|
|
Cálculo Feito:
Posição | Dígito | Cálculo | Resposta da Posição |
|
| 2^0 * 1 |
|
|
| 2^1 * 1 |
|
|
| 2^2 * 0 |
|
|
| 2^3 * 1 |
|
Somamos Tudo :
1 + 2 + 0 + 8 = 11
Resultado =
1011
=11
Transformar Decimal em Bináio
Este é um pouco chatinho de Fazer, um pouco mais do que o Anterior
Vamos pegar por Exemplo o Valor Decimal 11
Passos:
Transformar um valor Decimal em Binário envolve Divisões Sucessivas
Devemos fazer várias
Divisões por 2
Até não poder ser mais dividido.Iremos pegar os Restos de Cada Divisão de
Baixo para cima
Concatenando esses Dígitos dos Restos teremos nosso Valor em Binário
Exemplo:
Divisão | Dividendo | Resto da Divisão | Construção do Binário Passo-a-Passo |
11 / 2 | 5 | 1 |
|
5 / 2 | 2 | 1 |
|
2 / 2 | 1 | 0 |
|
1 / 2 | 0 | 1 |
|
Foi sendo colocado o novo dígito do Resto da Divisão a Esquerda do Valor anterior
Resultado: 11
= 1011
Bits Significativos dos Binários
Iremos trabalhar com algo chamado Bits significativos, que nos auxiliam a entender melhor o que o Binário representa como Número, onde existe dois Segmentos:LSB
LSB
significaL
eastS
ignificantB
itEle respresenta o Bit na extrema Direita do Binário, onde ele interfere menos no valor total do Binário em Si
Com ele podemos por exemplo saber se o Valor em Binário é Par ou Impar
1001
MSB
MSB
significaM
ostS
ignificantB
itEle respresenta o Bit na extrema Esquerda do Binário, onde ele Define o valor total do Binário em Si
Com ele podemos por exemplo saber se o Valor em Binário é
Negativo
(1
) ouPositivo
(0
)
1
001
Mexendo com Hexadecimal de Base 16
Hexadecimal Oferece um Equilibrio entre a Facilidade do Decimal e a Visão direta do Binário
Hexadecimal se mantem com Dígitos Decimais até o Número 9, Depois será Transferidos para Letras que terão o Significado daquele Número em Decimal de Dois Digitos.
Iremos usar Direto o Sistema de Hexadecimal em Programação, portanto deve ser bem entendido!
Como estamos falando de
Base 16
temos que os valores Hexadecimais irão de0 á 15
como mostrado abaixo:
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
Base 16 é uma Potência de 2 elevado na Quarta Potência(
2^4
), portanto a Conversão entre BInário e Hexadecimal é feita de4 em 4 Bits
:
Decimal | Binário | Hexadecimal |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Transformação de Binário em Hexadecimal
Se quiser transformar um Binário muito grande em Hexadecimal para diminuir o tamanho armazenado, iremos fazer o seguinte:
Passos:
Pegue o Número Binário desejado
Separe o valor de 4 em 4 bits começando pelo Bit mais Significativo(Extrema Esquerda)
Transformamos o Valor desses 4 bits em seu Valor Hexadecimal Referente
Depois é só juntar todos os valores Concatenados e Teremos nosso valor Hexadecimal Referente
Exemplo:
Valor em Binário: 11110000101011100001010011101100
Dividimos os valores em 4 em 4 bits, começando pelo Bit mais Significativo(Extrema Esquerda)
1111
0000
1010
1110
0001
0100
1110
1100
Agora pegamos Esses valores e Transformamos em Hexadecimal, como na Tabela Abaixo:
Binário | Hexadecimal |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Resultado: O valor em Hexadecimal do Valor em Binário é F0AE14EC
Com isso Conseguimos armazenar valores grandes em Binário em um Valor menor em Hexadecimal
Convertendo Hexadecimal para Decimal
Devemos seguir os seguintes passos para fazer com que o Valor em Hexa fique exatamente o valor em Decimal
Passos:
Pegamos o valor em Hexadecimal e Dividimos ele em Posições, começando da Direita para a Esquerda
Cada posição é o
Expoente
da Exponenciação deBase 16
Após colocar direitinho as Exponenciações, devemos multiplicar com o valor que está dentro da Posição,onde se for uma letra deve ser transformado em seu Número especifico
Após feitos os calculos de cada Posição, se soma todos os valores e dará o resultado desejado
Exemplo:
Valor Desejado = F0AE14EC
Colocando em suas Posições Específicas:
Posição 7 | Posição 6 | Posição 5 | Posição 4 | Posição 3 | Posição 2 | Posição 1 | Posição 0 |
|
|
|
|
|
|
|
|
Agora iremos colocar todas as posições em seus calculos devidos
Posição | Valor da Posição | Cálculo | Resultado da Posição |
0 |
|
|
|
1 |
|
|
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
|
5 |
|
|
|
6 |
|
|
|
7 |
|
|
|
Agora iremos somar todos os valores de todas as posições e teremos o valor em Decimal:
12
+ 224
+ 1.024
+ 4.096
+ 917.504
+ 10.485.760
+ 0
+ 4.026.531.840
= 4.037.940.460
Resultado: 4.037.940.460
Last updated