Valor de um número escrito na base b
N = Σ d_i × b^i (i de 0 a n − 1)
Cada algarismo é multiplicado pela potência de b da sua posição; o algarismo da direita tem a posição 0.
Conversor de bases numéricas de 2 a 36: 255 = FF em hexadecimal = 11111111 em binário = 377 em octal. Notação posicional, método das divisões, cores #RRGGBB, permissões chmod 755 e máscaras de bits.
Escreva um inteiro numa base de 2 a 36 e veja-o logo em binário, octal, decimal e hexadecimal, além da base de destino que escolher. Serve para descodificar uma cor #RRGGBB, ler permissões Unix como chmod 755, escrever uma máscara de bits, conferir um exercício de numeração ou tratar identificadores em base 36.
Num sistema posicional de base b, cada algarismo vale o peso da sua posição, uma potência de b: 1F4 na base 16 é 1 × 256 + 15 × 16 + 4 = 500. As bases acima de 10 usam letras: A = 10, B = 11, até F = 15 em hexadecimal e Z = 35 na base 36. Maiúsculas e minúsculas são equivalentes na introdução.
Para passar de decimal para a base b, divide-se repetidamente por b e leem-se os restos de baixo para cima: 500 = 31 × 16 + 4, depois 31 = 1 × 16 + 15, logo 1F4. Binário, octal e hexadecimal estão ligados porque 8 = 2^3 e 16 = 2^4: um algarismo octal vale 3 bits e um hexadecimal 4 bits. Assim, 1010 1010 em binário agrupa-se em A e A, ou seja AA, ou 170 em decimal.
O cálculo usa inteiros de tamanho arbitrário: 18446744073709551615 (2^64 − 1) converte-se sem perdas para FFFFFFFFFFFFFFFF, o que um número JavaScript normal não consegue representar. Os prefixos 0b, 0o e 0x são aceites nas bases 2, 8 e 16, espaços e sublinhados são ignorados, e é permitido um sinal − ou +.
Limites: só são tratados inteiros, pelo que 3,5 é rejeitado. Um número negativo aparece com o sinal (−42 dá −101010), não em complemento para dois, que depende de uma largura em bits. Um algarismo que não existe na base de origem, como um 2 em binário, é assinalado.
Introduza o inteiro (com ou sem prefixo 0x, 0b, 0o) e escolha a base de origem: 2, 8, 10, 16, 36 ou um valor personalizado de 2 a 36.
Os resultados binário, octal, decimal e hexadecimal aparecem sempre, e a base de destino surge num campo à parte.
Maiúsculas ou minúsculas, e agrupamento dos algarismos de 4 em 4 (binário, hexadecimal) ou de 3 em 3 para facilitar a leitura.
Um inteiro N escreve-se na base b com algarismos d_i entre 0 e b − 1.
N = Σ d_i × b^i (i de 0 a n − 1)
Cada algarismo é multiplicado pela potência de b da sua posição; o algarismo da direita tem a posição 0.
N = q × b + r
O resto r é o algarismo menos significativo na base b; repete-se com q.
16 = 2^4 e 8 = 2^3
Um algarismo hexadecimal vale 4 bits e um octal 3 bits.
Exemplo: 500 ÷ 16 = 31 resto 4; 31 ÷ 16 = 1 resto 15 (F); 1 ÷ 16 = 0 resto 1. Lendo os restos de baixo para cima, 500 = 1F4 em hexadecimal.
Descodificar um código #RRGGBB em três valores decimais de 0 a 255, ou o contrário.
Ler um modo chmod em octal como uma sequência de bits r, w e x.
Escrever uma máscara de bits, ler um valor de memória ou perceber um campo binário.
Conferir exercícios de numeração ou comparar as representações de um mesmo inteiro.
255 = 15 × 16 + 15, o valor máximo de um byte.
Entrada
255 (base 10)Resultado
FF em hexadecimal, 11111111 em binário, 377 em octalFF = 255 (vermelho), 88 = 136 (verde), 00 = 0 (azul): rgb(255, 136, 0).
Entrada
FF8800 (base 16)Resultado
16746496 em decimal7 = 111 (rwx), 5 = 101 (r-x), 5 = 101 (r-x): rwxr-xr-x.
Entrada
755 (base 8)Resultado
111101101 em binário, 493 em decimalOs espaços são ignorados, e cada grupo de 4 bits dá um algarismo hexadecimal.
Entrada
1010 1010 (base 2)Resultado
AA em hexadecimal, 170 em decimal1000 = 27 × 36 + 28, com R = 27 e S = 28.
Entrada
1000 (base 10)Resultado
RS em base 36Divida por 2 anotando os restos e leia-os de baixo para cima. Por exemplo, 13 dá 1101: 13 = 6 × 2 + 1, 6 = 3 × 2 + 0, 3 = 1 × 2 + 1, 1 = 0 × 2 + 1.
Multiplique cada algarismo por uma potência de 16. FF = 15 × 16 + 15 = 255, e 1F4 = 1 × 256 + 15 × 16 + 4 = 500.
Todas as bases inteiras de 2 a 36, incluindo binário (2), octal (8), decimal (10), hexadecimal (16) e base 36 (algarismos 0-9 e depois A-Z).
Os negativos são aceites com sinal − e mostrados com o sinal (−42 dá −101010), sem complemento para dois. Os números fracionários não são aceites.
Na prática não: o cálculo usa inteiros de tamanho arbitrário. 2^64 − 1 = 18446744073709551615 dá FFFFFFFFFFFFFFFF.
Ferramentas relacionadas
Ferramentas semelhantes ou complementares a esta.
Converta uma cor entre HEX, RGB e HSL com os respetivos valores equivalentes.
Codifique texto em Base64 ou descodifique uma cadeia Base64 para recuperar o conteúdo original.
Escreva um número por extenso em português, inglês, francês, espanhol, alemão ou italiano, ou recupere os algarismos a partir das palavras.