Este é o comando bin_dec_hex que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online Windows ou emulador online MAC OS
PROGRAMA:
NOME
bin_dec_hex - como usar notação binária, decimal e hexadecimal.
DESCRIÇÃO
A maioria das pessoas usa o sistema de numeração decimal. Este sistema usa dez símbolos para representar
números. Quando esses dez símbolos são usados, eles começam tudo de novo e incrementam o
posição à esquerda. O dígito 0 só é mostrado se for o único símbolo na sequência,
ou se não for o primeiro.
Se isso parece enigmático para você, é o que acabei de dizer em números:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
e assim por diante.
Cada vez que o dígito nove é incrementado, ele é redefinido para 0 e a posição anterior (para o
esquerda) é incrementado (de 0 a 1). O número 9 pode ser visto como "00009" e quando
deve incrementar 9, nós o redefinimos para zero e incrementamos o dígito logo antes do 9 para que o
o número torna-se "00010". Não escrevemos zeros à esquerda, exceto se for o único dígito
(número 0). E, claro, escrevemos zeros se eles ocorrerem em qualquer lugar dentro ou no final de um
número:
"00010" -> "0010" -> "010" -> "10", mas não "1".
Isso era bem básico, você já sabia disso. Por que eu disse isso? Bem, computadores geralmente
não representam números com 10 dígitos diferentes. Eles usam apenas dois símbolos diferentes,
ou seja, "0" e "1". Aplique as mesmas regras a este conjunto de dígitos e você obterá o binário
sistema de numeração:
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
e assim por diante.
Se você contar o número de linhas, verá que são novamente 14 números diferentes. o
os números são iguais e significam o mesmo da primeira lista, acabamos de usar um diferente
representação. Isso significa que você tem que saber a representação usada, ou como ela é
chamado de sistema de numeração ou base. Normalmente, se não especificarmos explicitamente o
sistema de numeração usado, implicitamente usamos o sistema decimal. Se quisermos usar qualquer outro
sistema de numeração, teremos que deixar isso bem claro. Existem alguns métodos amplamente adotados para
faça isso. Uma forma comum é escrever 1010(2) o que significa que você escreveu um número em seu
representação binária. É o número dez. Se você escreveria 1010 sem especificar
a base, o número é interpretado como mil e dez usando a base 10.
Nos livros, outra forma é comum. Ele usa subscritos (pequenos caracteres, mais ou menos em
entre duas linhas). Você pode omitir os parênteses nesse caso e anotar o
número em caracteres normais seguido por um pequeno dois logo atrás dele.
Como o sistema de numeração utilizado também é chamado de base, falamos do número 1100 base 2,
o número 12 base 10.
Dentro do sistema binário, é comum escrever zeros à esquerda. Os números são escritos
para baixo em séries de quatro, oito ou dezesseis, dependendo do contexto.
Podemos usar a forma binária ao falar com computadores (... programação ...), mas os números
terá grandes representações. O número 65 (frequentemente no sistema decimal a 'é
usado para separar blocos de três dígitos para facilitar a leitura) seria escrito como
1111111111111111(2) que é 16 vezes o dígito 1. Isso é difícil e sujeito a erros.
Portanto, normalmente usaríamos outra base, chamada hexadecimal. Ele usa 16 diferentes
símbolos. Primeiro, os símbolos do sistema decimal são usados, depois disso, continuamos com
caracteres alfabéticos. Obtemos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F. Isso
sistema é escolhido porque a forma hexadecimal pode ser convertida no sistema binário muito
facilmente (e de volta).
Existe ainda outro sistema em uso, denominado sistema octal. Isso era mais comum no
velhos tempos, mas não é mais usado com muita frequência. Como você pode achar que está em uso às vezes, você
deve se acostumar com isso e vamos mostrar isso a seguir. É a mesma história da outra
representações, mas com oito símbolos diferentes.
Binário (2)
Octal (8)
Decimal (10)
Hexadecimal (16)
(2) (8) (10) (16)
00000 0 0 0
00001 1 1 1
00010 2 2 2
00011 3 3 3
00100 4 4 4
00101 5 5 5
00110 6 6 6
00111 7 7 7
01000 10 8 8
01001 11 9 9
01010 12 10 A.
01011 13 11B
01100 C
01101 15 13 D
01110 16 14E
01111 17 15F
10000 20 16 10
10001 21 17 11
10010 22 18 12
10011 23 19 13
10100 24 20 14
10101 25 21 15
A maioria dos computadores usados atualmente está usando bytes de oito bits. Isso significa que eles armazenam
oito bits por vez. Você pode ver porque o sistema octal não é o mais prático para isso:
Você precisaria de três dígitos para representar os oito bits e isso significa que você teria que usar
um dígito completo para representar apenas dois bits (2 + 3 + 3 = 8). Isso é um desperdício. Para hexadecimal
dígitos, você precisa de apenas dois dígitos, que são usados completamente:
(2) (8) (10) (16)
11111111 377 255 PF
Você pode ver por que binário e hexadecimal podem ser convertidos rapidamente: Para cada hexadecimal
dígito, existem exatamente quatro dígitos binários. Pegue um número binário: pegue quatro dígitos de
à direita e faça um dígito hexadecimal a partir dela (veja a tabela acima). Repita isso até
não há mais dígitos. E o contrário: pegue um número hexadecimal. Para cada
dígito, escreva seu equivalente binário.
Os computadores (ou melhor, os analisadores em execução neles) teriam dificuldade em converter um
número como 1234(16). Portanto, os números hexadecimais são especificados com um prefixo. Esse
prefixo depende do idioma em que você está escrevendo. Alguns dos prefixos são "0x" para C, "$"
para Pascal, "#" para HTML. É comum supor que se um número começa com zero,
é octal. Não importa o que é usado, contanto que você saiba o que é. Vou usar "0x"
para hexadecimal, "%" para binário e "0" para octal. Os seguintes números são todos os
mesmo, apenas sua representação (base) é diferente: 021 0x11 17% 00010001
Para fazer aritmética e conversões, você precisa entender mais uma coisa. É algo
você já sabe, mas talvez ainda não "veja":
Se você escrever 1234, (sem prefixo, então é decimal), você está falando sobre o número um
mil, duzentos e trinta e quatro. Em uma espécie de fórmula:
1 * 1000 = 1000
2 * 100 = 200
3 * 10 = 30
4 * 1 = 4
Isso também pode ser escrito como:
1 * 10 ^ 3
2 * 10 ^ 2
3 * 10 ^ 1
4 * 10 ^ 0
onde ^ significa "à potência de".
Estamos usando a base 10 e as posições 0,1,2 e 3. A posição mais à direita deve
NÃO ser multiplicado por 10. O segundo da direita deve ser multiplicado uma vez com
10. O terceiro da direita é multiplicado por 10 duas vezes. Isso continua para qualquer coisa
posições são usadas.
É o mesmo em todas as outras representações:
0x1234 será
1 * 16 ^ 3
2 * 16 ^ 2
3 * 16 ^ 1
4 * 16 ^ 0
01234 seria
1 * 8 ^ 3
2 * 8 ^ 2
3 * 8 ^ 1
4 * 8 ^ 0
Este exemplo não pode ser feito para binários, pois o sistema usa apenas dois símbolos. Outro
exemplo:
% 1010 seria
1 * 2 ^ 3
0 * 2 ^ 2
1 * 2 ^ 1
0 * 2 ^ 0
Teria sido mais fácil convertê-lo em sua forma hexadecimal e apenas traduzir% 1010
em 0xA. Depois de um tempo, você se acostuma. Você não precisará fazer nenhum cálculo
mais, mas saiba que 0xA significa 10.
Para converter um número decimal em hexadecimal, você pode usar o próximo método. Vai levar
algum tempo para poder fazer as estimativas, mas será mais fácil quando você usar o sistema
mais frequentemente. Veremos ainda outra maneira depois.
Primeiro você precisa saber quantas posições serão usadas no outro sistema. Para fazer isso, você
precisa saber os números máximos que você usará. Bem, isso não é tão difícil quanto parece. No
decimal, o número máximo que você pode formar com dois dígitos é "99". O máximo para
três: "999". O próximo número precisaria de uma posição extra. Inverta essa ideia e você vai
veja que o número pode ser encontrado tomando 10 ^ 3 (10 * 10 * 10 é 1000) menos 1 ou 10 ^ 2 menos
um.
Isso também pode ser feito para hexadecimais:
16 ^ 4 = 0x10000 = 65536
16 ^ 3 = 0x1000 = 4096
16 ^ 2 = 0x100 = 256
16 ^ 1 = 0x10 = 16
Se um número for menor que 65, ele caberá em quatro posições. Se o número for maior
do que 4'095, você deve usar a posição 4. Quantas vezes você pode subtrair 4'096 do
número sem ir abaixo de zero é o primeiro dígito que você escreve. Isso sempre será um
número de 1 a 15 (0x1 a 0xF). Faça o mesmo para as outras posições.
Vamos tentar com 41'029. É menor que 16 ^ 4, mas maior que 16 ^ 3-1. Isso significa que nós
tem que usar quatro posições. Podemos subtrair 16 ^ 3 de 41'029 dez vezes sem ir
abaixo de zero. O dígito mais à esquerda será, portanto, "A", então temos 0xA ????. O número é
reduzido para 41'029 - 10 * 4'096 = 41'029-40'960 = 69. 69 é menor que 16 ^ 3, mas não maior
do que 16 ^ 2-1. O segundo dígito é, portanto, "0" e agora temos 0xA0 ??. 69 é menor que
16 ^ 2 e maior que 16 ^ 1-1. Podemos subtrair 16 ^ 1 (que é simplesmente 16) quatro vezes e
escreva "4" para obter 0xA04 ?. Subtraia 64 de 69 (69 - 4 * 16) e o último dígito é 5 ->
0xA045.
O outro método constrói o número da direita. Vamos tentar 41'029 novamente. Dividido por
16 e não use frações (apenas números inteiros).
41'029 / 16 é 2'564 com um resto de 5. Anote 5.
2'564 / 16 é 160 com um resto de 4. Escreva o 4 antes do 5.
160/16 é 10 sem resto. Anexar 45 com 0.
10/16 está abaixo de um. Termine aqui e acrescente 0xA. Termine com 0xA045.
Qual método usar depende de você. Use o que funcionar para você. Eu uso os dois sem
ser capaz de dizer que método utilizo em cada caso, só depende do número, eu acho.
O fato é que alguns números ocorrerão com frequência durante a programação. Se o número estiver perto de
um com o qual estou familiarizado, então usarei o primeiro método (como 32'770 que está em 32'768
+ 2 e eu só sei que é 0x8000 + 0x2 = 0x8002).
Para binários, a mesma abordagem pode ser usada. A base é 2 e não 16, e o número de
posições crescerão rapidamente. Usar o segundo método tem a vantagem de que você pode ver
muito facilmente se você escrever um zero ou um: se você dividir por dois o resto
será zero se for um número par e um se for um número ímpar:
41029/2 = 20514 resto 1
20514/2 = 10257 resto 0
10257/2 = 5128 resto 1
5128/2 = 2564 resto 0
2564/2 = 1282 resto 0
1282/2 = 641 resto 0
641/2 = 320 resto 1
320/2 = 160 resto 0
160/2 = 80 resto 0
80/2 = 40 resto 0
40/2 = 20 resto 0
20/2 = 10 resto 0
10/2 = 5 resto 0
5/2 = 2 resto 1
2/2 = 1 resto 0
1/2 abaixo de 0 resto 1
Anote os resultados da direita para a esquerda:% 1010000001000101
Grupo por quatro:
% 1010000001000101
% 101000000100 0101
% 10100000 0100 0101
% 1010 0000 0100 0101
Converter em hexadecimal: 0xA045
Grupo% 1010000001000101 por três e converter em octal:
% 1010000001000101
% 1010000001000 101
% 1010000001 000 101
% 1010000 001 000 101
% 1010 000 001 000 101
% 1 010 000 001 000 101
% 001 010 000 001 000 101
1 2 0 1 0 5 -> 0120105
Então:% 1010000001000101 = 0120105 = 0xA045 = 41029
Ou: 1010000001000101(2) = 120105(8) = A045(16) = 41029(10)
Ou: 1010000001000101(2) = 120105(8) = A045(16) = 41029
No início, ao adicionar números, você os converterá em sua forma decimal e depois voltará
em sua forma original após fazer a adição. Se você usar o outro sistema de numeração
frequentemente, você verá que será capaz de fazer cálculos aritméticos diretamente na base que é
usado. Em qualquer representação é o mesmo, some os números à direita, escreva o
dígito mais à direita do resultado, lembre-se dos outros dígitos e use-os na próxima
volta. Continue com o segundo dígito da direita e assim por diante:
% 1010 +% 0111 -> 10 + 7 -> 17 ->% 00010001
se tornará
% 1010
% 0111 +
||||
||| + - adicione 0 + 1, o resultado é 1, nada para lembrar
|| + --- some 1 + 1, o resultado é% 10, escreva 0 e lembre-se de 1
| + ---- some 0 + 1 + 1 (lembrado), resultado = 0, lembre-se de 1
+ ----- adicionar 1 + 0 + 1 (lembrado), resultado = 0, lembrar 1
nada a acrescentar, 1 lembrado, resultado = 1
--------
% 10001 é o resultado, gosto de escrever como% 00010001
Para valores baixos, tente fazer os cálculos você mesmo e, em seguida, verifique-os com uma calculadora.
Quanto mais você faz os cálculos sozinho, mais você descobrirá que não fez
erros. No final, você fará cálculos em outras bases tão facilmente quanto faz em
decimal.
Quando os números ficarem maiores, você terá que perceber que um computador não é chamado de
computador apenas para ter um bom nome. Existem muitas calculadoras diferentes disponíveis, use
eles. Para Unix, você pode usar "bc", que é a abreviação de Calculadora Binária. Não calcula
apenas em decimal, mas em todas as bases que você quiser usar (entre elas, o binário).
Para pessoas no Windows: Inicie a calculadora (iniciar-> programas-> acessórios-> calculadora) e
se necessário, clique em ver-> científico. Agora você tem uma calculadora científica e pode calcular
em binário ou hexadecimal.
Use bin_dec_hex online usando serviços onworks.net