Conversor de Bases Numéricas
Converta números entre binário, octal, decimal e hexadecimal.
Gratis ate 10 MB por arquivo100 MB por enviosem anuncio antes do limite
$titulo = 'Conversor de Bases Numéricas';
$descricao = 'Converta números entre diferentes bases: binário (2), octal (8), decimal (10) e hexadecimal (16)';
$palavrasChave = 'conversor bases, binário, hexadecimal, octal, decimal';
$numero = '';
$base_origem = 'decimal';
$base_destino = 'binario';
$resultado = '';
$erro = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$numero = trim($_POST['numero'] ?? '');
$base_origem = $_POST['base_origem'] ?? 'decimal';
$base_destino = $_POST['base_destino'] ?? 'binario';
if (!empty($numero)) {
$resultado = converterBase($numero, $base_origem, $base_destino);
if ($resultado === false) {
$erro = 'Número inválido para a base selecionada!';
$resultado = '';
}
}
}
function validarNumeroBase($numero, $base) {
$numero = strtoupper($numero);
$digitos_validos = [
'binario' => '01',
'octal' => '01234567',
'decimal' => '0123456789',
'hexadecimal' => '0123456789ABCDEF'
];
if (!isset($digitos_validos[$base])) {
return false;
}
for ($i = 0; $i < strlen($numero); $i++) {
if (strpos($digitos_validos[$base], $numero[$i]) === false) {
return false;
}
}
return true;
}
function converterBase($numero, $origem, $destino) {
if (!validarNumeroBase($numero, $origem)) {
return false;
}
// Primeiro converte para decimal
$decimal = 0;
$numero = strtoupper($numero);
switch ($origem) {
case 'binario':
$decimal = bindec($numero);
break;
case 'octal':
$decimal = octdec($numero);
break;
case 'decimal':
$decimal = intval($numero);
break;
case 'hexadecimal':
$decimal = hexdec($numero);
break;
}
// Depois converte do decimal para a base destino
switch ($destino) {
case 'binario':
return decbin($decimal);
case 'octal':
return decoct($decimal);
case 'decimal':
return $decimal;
case 'hexadecimal':
return strtoupper(dechex($decimal));
}
return '';
}
function formatarResultado($resultado, $base) {
if ($base === 'hexadecimal') {
return '0x' . $resultado;
} elseif ($base === 'binario') {
// Agrupar em grupos de 4 bits
$resultado = str_pad($resultado, ceil(strlen($resultado) / 4) * 4, '0', STR_PAD_LEFT);
return chunk_split($resultado, 4, ' ');
} elseif ($base === 'octal') {
return '0' . $resultado;
}
return $resultado;
}
?>
Binário (Base 2)
Apenas 0 e 1
1010 = 10
Octal (Base 8)
Dígitos 0-7
012 = 10
Decimal (Base 10)
Dígitos 0-9
10 = 10
Hexadecimal (Base 16)
0-9, A-F
0xA = 10
Proximo passo recomendado
Faca este resultado trabalhar por voce
A Minike conecta a ferramenta que voce esta usando com o produto que tem maior chance de gerar valor recorrente.
R$ 49,90/mo
Minike Ferramentas Pro
Conversoes maiores, sem anuncios principais e prioridade.
Gratis: 10 MB por arquivo e 100 MB por lote.
R$ 29,90/mo
Minike Sites
Transforme arquivos convertidos em paginas, landing pages e lojas.
Previa gratis antes de publicar.
Precos exibidos para Brasil e EUA. O checkout local cobra em BRL ate ativarmos gateway internacional.