{"id":25524,"date":"2025-05-27T23:57:25","date_gmt":"2025-05-28T02:57:25","guid":{"rendered":"https:\/\/hangarmma.com.br\/blog\/?page_id=25524"},"modified":"2025-05-28T22:59:16","modified_gmt":"2025-05-29T01:59:16","slug":"conversor-de-unidades","status":"publish","type":"page","link":"https:\/\/hangarmma.com.br\/blog\/conversor-de-unidades\/","title":{"rendered":"Conversor de Unidades &#8211; Banca ANAC"},"content":{"rendered":"\n<!-- Conversor de Bases Num\u00e9ricas para WordPress -->\n<div id=\"cbn-conversor-bases-numericas\" class=\"cbn-wrapper\">\n    <h2 class=\"cbn-titulo\">Conversores de Bases Num\u00e9ricas<\/h2>\n    <p class=\"cbn-descricao\">Insira um n\u00famero, escolha a base de origem e a base de destino para realizar a convers\u00e3o.<\/p>\n\n    <div class=\"cbn-container\">\n        <!-- Campo de entrada -->\n        <div class=\"cbn-input-group\">\n            <label for=\"cbn-numero-entrada\" class=\"cbn-label\">N\u00famero a converter:<\/label>\n            <input type=\"text\" id=\"cbn-numero-entrada\" class=\"cbn-input\" placeholder=\"Digite o n\u00famero aqui\" aria-describedby=\"cbn-erro-entrada\">\n            <div id=\"cbn-erro-entrada\" class=\"cbn-erro\">Por favor, insira um n\u00famero v\u00e1lido para a base selecionada.<\/div>\n        <\/div>\n\n        <!-- Sele\u00e7\u00e3o de bases -->\n        <div class=\"cbn-select-group\">\n            <div class=\"cbn-select-container\">\n                <label for=\"cbn-base-origem\" class=\"cbn-label\">Base de origem:<\/label>\n                <select id=\"cbn-base-origem\" class=\"cbn-select\">\n                    <option value=\"decimal\">Decimal<\/option>\n                    <option value=\"binario\">Bin\u00e1rio<\/option>\n                    <option value=\"octal\">Octal<\/option>\n                    <option value=\"hexadecimal\">Hexadecimal<\/option>\n                    <option value=\"gray\">Gray<\/option>\n                    <option value=\"bcd\">BCD<\/option>\n                <\/select>\n            <\/div>\n\n            <div class=\"cbn-select-container\">\n                <label for=\"cbn-base-destino\" class=\"cbn-label\">Base de destino:<\/label>\n                <select id=\"cbn-base-destino\" class=\"cbn-select\">\n                    <option value=\"decimal\">Decimal<\/option>\n                    <option value=\"binario\">Bin\u00e1rio<\/option>\n                    <option value=\"octal\">Octal<\/option>\n                    <option value=\"hexadecimal\">Hexadecimal<\/option>\n                    <option value=\"gray\">Gray<\/option>\n                    <option value=\"bcd\">BCD<\/option>\n                <\/select>\n            <\/div>\n        <\/div>\n\n        <!-- Bot\u00e3o de convers\u00e3o -->\n        <button id=\"cbn-botao-converter\" class=\"cbn-botao\">Converter<\/button>\n\n        <!-- \u00c1rea de resultado -->\n        <div id=\"cbn-resultado-container\" class=\"cbn-resultado-container\" style=\"display: none;\">\n            <div class=\"cbn-resultado-titulo\">Resultado da convers\u00e3o:<\/div>\n            <div id=\"cbn-resultado\" class=\"cbn-resultado\"><\/div>\n            <button id=\"cbn-botao-passos\" class=\"cbn-botao cbn-botao-secundario\">Mostrar passos da convers\u00e3o<\/button>\n        <\/div>\n\n        <!-- \u00c1rea de passos da convers\u00e3o -->\n        <div id=\"cbn-passos-container\" class=\"cbn-passos-container\">\n            <div class=\"cbn-passos-titulo\">Passos da convers\u00e3o:<\/div>\n            <div id=\"cbn-passos-conteudo\" class=\"cbn-passos-conteudo\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<style>\n\/* Estilos isolados com prefixo .cbn- para evitar conflitos com o tema WordPress *\/\n#cbn-conversor-bases-numericas.cbn-wrapper {\n    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif !important;\n    max-width: 800px !important;\n    margin: 0 auto !important;\n    padding: 20px !important;\n    background-color: #f8faff !important;\n    border-radius: 10px !important;\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;\n    box-sizing: border-box !important;\n}\n\n#cbn-conversor-bases-numericas.cbn-wrapper * {\n    box-sizing: border-box !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-titulo {\n    text-align: center !important;\n    color: #3a7bd5 !important;\n    margin-bottom: 15px !important;\n    font-weight: 600 !important;\n    font-size: 24px !important;\n    line-height: 1.4 !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-descricao {\n    text-align: center !important;\n    color: #5a6a8a !important;\n    margin-bottom: 30px !important;\n    line-height: 1.5 !important;\n    font-size: 16px !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-container {\n    display: flex !important;\n    flex-direction: column !important;\n    gap: 20px !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-input-group {\n    display: flex !important;\n    flex-direction: column !important;\n    gap: 8px !important;\n    margin-bottom: 10px !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-label {\n    font-weight: 500 !important;\n    color: #4a5568 !important;\n    font-size: 14px !important;\n    margin-bottom: 5px !important;\n    display: block !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-input,\n#cbn-conversor-bases-numericas .cbn-select {\n    padding: 12px 15px !important;\n    border: 1px solid #d0d9e8 !important;\n    border-radius: 6px !important;\n    font-size: 16px !important;\n    transition: border-color 0.3s, box-shadow 0.3s !important;\n    background-color: white !important;\n    width: 100% !important;\n    height: auto !important;\n    display: block !important;\n    color: #333 !important;\n    line-height: 1.5 !important;\n    margin: 0 !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-input:focus,\n#cbn-conversor-bases-numericas .cbn-select:focus {\n    outline: none !important;\n    border-color: #3a7bd5 !important;\n    box-shadow: 0 0 0 3px rgba(58, 123, 213, 0.2) !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-select-group {\n    display: flex !important;\n    gap: 15px !important;\n    margin-bottom: 10px !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-select-container {\n    flex: 1 !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-botao {\n    background-color: #3a7bd5 !important;\n    color: white !important;\n    border: none !important;\n    padding: 12px 20px !important;\n    border-radius: 6px !important;\n    font-size: 16px !important;\n    font-weight: 500 !important;\n    cursor: pointer !important;\n    transition: background-color 0.3s, transform 0.2s !important;\n    display: inline-block !important;\n    text-align: center !important;\n    line-height: 1.5 !important;\n    margin: 0 !important;\n    text-decoration: none !important;\n    text-transform: none !important;\n    letter-spacing: normal !important;\n    width: auto !important;\n    height: auto !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-botao:hover {\n    background-color: #2d62b3 !important;\n    transform: translateY(-2px) !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-botao:active {\n    transform: translateY(0) !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-botao-secundario {\n    background-color: #e2eaf7 !important;\n    color: #3a7bd5 !important;\n    border: 1px solid #d0d9e8 !important;\n    margin-top: 15px !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-botao-secundario:hover {\n    background-color: #d0dff3 !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-resultado-container {\n    margin-top: 20px !important;\n    padding: 15px !important;\n    background-color: #f0f5ff !important;\n    border-radius: 6px !important;\n    border-left: 4px solid #3a7bd5 !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-resultado-titulo {\n    font-weight: 600 !important;\n    color: #3a7bd5 !important;\n    margin-bottom: 10px !important;\n    font-size: 16px !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-resultado {\n    font-size: 18px !important;\n    color: #2d3748 !important;\n    word-break: break-all !important;\n    margin-bottom: 15px !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-passos-container {\n    margin-top: 20px !important;\n    padding: 15px !important;\n    background-color: #f0f5ff !important;\n    border-radius: 6px !important;\n    border-left: 4px solid #3a7bd5 !important;\n    display: none !important;\n}\n\n\/* Importante: removido o !important do display para permitir altera\u00e7\u00e3o via JavaScript *\/\n#cbn-conversor-bases-numericas .cbn-passos-container.cbn-mostrar {\n    display: block !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-passos-titulo {\n    font-weight: 600 !important;\n    color: #3a7bd5 !important;\n    margin-bottom: 10px !important;\n    font-size: 16px !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-passos-conteudo {\n    color: #4a5568 !important;\n    line-height: 1.6 !important;\n    font-size: 14px !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-passos-exemplo {\n    margin-top: 15px !important;\n    padding: 10px !important;\n    background-color: rgba(255, 255, 255, 0.7) !important;\n    border-radius: 4px !important;\n    font-size: 14px !important;\n}\n\n#cbn-conversor-bases-numericas .cbn-erro {\n    color: #e53e3e !important;\n    margin-top: 5px !important;\n    font-size: 14px !important;\n    display: none !important;\n}\n\n\/* Estilos responsivos *\/\n@media (max-width: 600px) {\n    #cbn-conversor-bases-numericas .cbn-select-group {\n        flex-direction: column !important;\n    }\n\n    #cbn-conversor-bases-numericas .cbn-botao {\n        width: 100% !important;\n    }\n}\n<\/style>\n\n<script>\n\/\/ Fun\u00e7\u00e3o auto-execut\u00e1vel para isolar o escopo do JavaScript\n(function() {\n    \/\/ Elementos do DOM\n    const numeroEntrada = document.getElementById('cbn-numero-entrada');\n    const baseOrigem = document.getElementById('cbn-base-origem');\n    const baseDestino = document.getElementById('cbn-base-destino');\n    const botaoConverter = document.getElementById('cbn-botao-converter');\n    const resultadoContainer = document.getElementById('cbn-resultado-container');\n    const resultado = document.getElementById('cbn-resultado');\n    const botaoPassos = document.getElementById('cbn-botao-passos');\n    const passosContainer = document.getElementById('cbn-passos-container');\n    const passosConteudo = document.getElementById('cbn-passos-conteudo');\n    const erroEntrada = document.getElementById('cbn-erro-entrada');\n\n    \/\/ Vari\u00e1veis para armazenar o \u00faltimo resultado e passos\n    let ultimoNumeroOrigem = '';\n    let ultimaBaseOrigem = '';\n    let ultimaBaseDestino = '';\n    let ultimoResultado = '';\n    let ultimosPassos = '';\n\n    \/\/ Padr\u00f5es de valida\u00e7\u00e3o para cada base\n    const padroes = {\n        decimal: \/^[0-9]+$\/,\n        binario: \/^[01]+$\/,\n        octal: \/^[0-7]+$\/,\n        hexadecimal: \/^[0-9A-Fa-f]+$\/,\n        gray: \/^[01]+$\/,\n        bcd: \/^[01]{4}([01]{4})*$\/\n    };\n\n    \/\/ Nomes amig\u00e1veis para as bases (para mensagens de erro)\n    const nomesBase = {\n        decimal: \"Decimal (apenas d\u00edgitos de 0-9)\",\n        binario: \"Bin\u00e1rio (apenas d\u00edgitos 0 e 1)\",\n        octal: \"Octal (apenas d\u00edgitos de 0-7)\",\n        hexadecimal: \"Hexadecimal (d\u00edgitos de 0-9 e letras de A-F)\",\n        gray: \"Gray (apenas d\u00edgitos 0 e 1)\",\n        bcd: \"BCD (grupos de 4 bits bin\u00e1rios)\"\n    };\n\n    \/\/ Exemplos v\u00e1lidos para cada base\n    const exemplosBase = {\n        decimal: \"42, 123, 9999\",\n        binario: \"1010, 101101, 1111\",\n        octal: \"52, 777, 123\",\n        hexadecimal: \"2A, FF, 1B3D\",\n        gray: \"1010, 1111, 1001\",\n        bcd: \"00100010, 01010001\"\n    };\n\n    \/\/ Fun\u00e7\u00e3o para validar a entrada com base na base de origem\n    function validarEntrada(numero, base) {\n        \/\/ Verifica\u00e7\u00e3o b\u00e1sica de formato\n        if (!padroes[base].test(numero)) {\n            return false;\n        }\n        \n        \/\/ Verifica\u00e7\u00f5es adicionais para evitar confus\u00e3o entre bases\n        if (base === 'hexadecimal') {\n            \/\/ Se parece com bin\u00e1rio (s\u00f3 tem 0 e 1)\n            if (\/^[01]+$\/.test(numero)) {\n                erroEntrada.textContent = `O n\u00famero \"${numero}\" parece ser bin\u00e1rio, n\u00e3o hexadecimal. Para hexadecimal, use d\u00edgitos de 0-9 e letras de A-F.`;\n                return false;\n            }\n            \/\/ Se parece com octal (s\u00f3 tem d\u00edgitos de 0-7)\n            if (\/^[0-7]+$\/.test(numero)) {\n                erroEntrada.textContent = `O n\u00famero \"${numero}\" parece ser octal, n\u00e3o hexadecimal. Para hexadecimal, use d\u00edgitos de 0-9 e letras de A-F.`;\n                return false;\n            }\n        }\n        \n        if (base === 'octal') {\n            \/\/ Se parece com bin\u00e1rio (s\u00f3 tem 0 e 1)\n            if (\/^[01]+$\/.test(numero)) {\n                erroEntrada.textContent = `O n\u00famero \"${numero}\" parece ser bin\u00e1rio, n\u00e3o octal. Para octal, use d\u00edgitos de 0-7.`;\n                return false;\n            }\n        }\n        \n        if (base === 'bcd') {\n            \/\/ Verificar se cada grupo de 4 bits representa um d\u00edgito v\u00e1lido (0-9)\n            for (let i = 0; i < numero.length; i += 4) {\n                if (i + 4 <= numero.length) {\n                    let grupo = numero.substring(i, i + 4);\n                    let valor = parseInt(grupo, 2);\n                    if (valor > 9) {\n                        erroEntrada.textContent = `Grupo BCD inv\u00e1lido: \"${grupo}\" representa ${valor}, que \u00e9 maior que 9.`;\n                        return false;\n                    }\n                }\n            }\n        }\n        \n        return true;\n    }\n\n    \/\/ Fun\u00e7\u00e3o para converter de qualquer base para decimal\n    function paraDecimal(numero, base) {\n        let decimal = 0;\n        \n        switch(base) {\n            case 'decimal':\n                decimal = parseInt(numero, 10);\n                break;\n            case 'binario':\n                decimal = parseInt(numero, 2);\n                break;\n            case 'octal':\n                decimal = parseInt(numero, 8);\n                break;\n            case 'hexadecimal':\n                decimal = parseInt(numero, 16);\n                break;\n            case 'gray':\n                \/\/ Converter Gray para bin\u00e1rio e depois para decimal\n                let binario = grayParaBinario(numero);\n                decimal = parseInt(binario, 2);\n                break;\n            case 'bcd':\n                \/\/ Converter BCD para decimal\n                decimal = bcdParaDecimal(numero);\n                break;\n        }\n        \n        return decimal;\n    }\n\n    \/\/ Fun\u00e7\u00e3o para converter de decimal para qualquer base\n    function deDecimal(decimal, base) {\n        let resultado = '';\n        \n        switch(base) {\n            case 'decimal':\n                resultado = decimal.toString();\n                break;\n            case 'binario':\n                resultado = decimal.toString(2);\n                break;\n            case 'octal':\n                resultado = decimal.toString(8);\n                break;\n            case 'hexadecimal':\n                resultado = decimal.toString(16).toUpperCase();\n                break;\n            case 'gray':\n                \/\/ Converter decimal para bin\u00e1rio e depois para Gray\n                let binario = decimal.toString(2);\n                resultado = binarioParaGray(binario);\n                break;\n            case 'bcd':\n                \/\/ Converter decimal para BCD\n                resultado = decimalParaBCD(decimal);\n                break;\n        }\n        \n        return resultado;\n    }\n\n    \/\/ Fun\u00e7\u00e3o para converter Gray para bin\u00e1rio\n    function grayParaBinario(gray) {\n        let binario = '';\n        binario += gray[0]; \/\/ O primeiro bit \u00e9 o mesmo\n        \n        for (let i = 1; i < gray.length; i++) {\n            \/\/ XOR entre o bit atual do bin\u00e1rio e o pr\u00f3ximo bit do Gray\n            binario += (parseInt(binario[i-1]) ^ parseInt(gray[i])).toString();\n        }\n        \n        return binario;\n    }\n\n    \/\/ Fun\u00e7\u00e3o para converter bin\u00e1rio para Gray\n    function binarioParaGray(binario) {\n        let gray = '';\n        gray += binario[0]; \/\/ O primeiro bit \u00e9 o mesmo\n        \n        for (let i = 1; i < binario.length; i++) {\n            \/\/ XOR entre o bit atual e o anterior do bin\u00e1rio\n            gray += (parseInt(binario[i-1]) ^ parseInt(binario[i])).toString();\n        }\n        \n        return gray;\n    }\n\n    \/\/ Fun\u00e7\u00e3o para converter BCD para decimal\n    function bcdParaDecimal(bcd) {\n        let decimal = 0;\n        \n        \/\/ Dividir o BCD em grupos de 4 bits\n        for (let i = 0; i < bcd.length; i += 4) {\n            if (i + 4 <= bcd.length) {\n                let grupo = bcd.substring(i, i + 4);\n                let digito = parseInt(grupo, 2);\n                \n                \/\/ Verificar se o grupo BCD \u00e9 v\u00e1lido (0-9)\n                if (digito > 9) {\n                    throw new Error(\"Grupo BCD inv\u00e1lido: \" + grupo);\n                }\n                \n                decimal = decimal * 10 + digito;\n            }\n        }\n        \n        return decimal;\n    }\n\n    \/\/ Fun\u00e7\u00e3o para converter decimal para BCD\n    function decimalParaBCD(decimal) {\n        let bcd = '';\n        let decimalStr = decimal.toString();\n        \n        for (let i = 0; i < decimalStr.length; i++) {\n            let digito = parseInt(decimalStr[i]);\n            let digitoBCD = digito.toString(2).padStart(4, '0');\n            bcd += digitoBCD;\n        }\n        \n        return bcd;\n    }\n\n    \/\/ Fun\u00e7\u00e3o para gerar os passos da convers\u00e3o\n    function gerarPassos(numeroOrigem, baseOrigem, baseDestino, resultado) {\n        let passos = '';\n        let decimal;\n        \n        \/\/ Passos para converter da base de origem para decimal (se necess\u00e1rio)\n        if (baseOrigem !== 'decimal') {\n            passos += `<strong>Passo 1:<\/strong> Converter ${numeroOrigem} da base ${baseOrigem} para decimal.<br><br>`;\n            \n            switch(baseOrigem) {\n                case 'binario':\n                    passos += `Para converter um n\u00famero bin\u00e1rio para decimal, multiplicamos cada d\u00edgito pela pot\u00eancia de 2 correspondente \u00e0 sua posi\u00e7\u00e3o (da direita para a esquerda, come\u00e7ando por 2^0).<br><br>`;\n                    decimal = parseInt(numeroOrigem, 2);\n                    \n                    let explicacaoBinario = '';\n                    for (let i = 0; i < numeroOrigem.length; i++) {\n                        let posicao = numeroOrigem.length - 1 - i;\n                        let valor = parseInt(numeroOrigem[i]) * Math.pow(2, posicao);\n                        explicacaoBinario += `${numeroOrigem[i]} \u00d7 2<sup>${posicao}<\/sup> = ${valor}<br>`;\n                    }\n                    \n                    passos += explicacaoBinario + `<br>Somando todos os valores: ${decimal}<br><br>`;\n                    break;\n                    \n                case 'octal':\n                    passos += `Para converter um n\u00famero octal para decimal, multiplicamos cada d\u00edgito pela pot\u00eancia de 8 correspondente \u00e0 sua posi\u00e7\u00e3o (da direita para a esquerda, come\u00e7ando por 8^0).<br><br>`;\n                    decimal = parseInt(numeroOrigem, 8);\n                    \n                    let explicacaoOctal = '';\n                    for (let i = 0; i < numeroOrigem.length; i++) {\n                        let posicao = numeroOrigem.length - 1 - i;\n                        let valor = parseInt(numeroOrigem[i]) * Math.pow(8, posicao);\n                        explicacaoOctal += `${numeroOrigem[i]} \u00d7 8<sup>${posicao}<\/sup> = ${valor}<br>`;\n                    }\n                    \n                    passos += explicacaoOctal + `<br>Somando todos os valores: ${decimal}<br><br>`;\n                    break;\n                    \n                case 'hexadecimal':\n                    passos += `Para converter um n\u00famero hexadecimal para decimal, multiplicamos cada d\u00edgito pela pot\u00eancia de 16 correspondente \u00e0 sua posi\u00e7\u00e3o (da direita para a esquerda, come\u00e7ando por 16^0).<br><br>`;\n                    decimal = parseInt(numeroOrigem, 16);\n                    \n                    let explicacaoHex = '';\n                    for (let i = 0; i < numeroOrigem.length; i++) {\n                        let posicao = numeroOrigem.length - 1 - i;\n                        let digito = numeroOrigem[i].toUpperCase();\n                        let valorDigito;\n                        \n                        if (digito >= 'A' && digito <= 'F') {\n                            valorDigito = 10 + (digito.charCodeAt(0) - 'A'.charCodeAt(0));\n                        } else {\n                            valorDigito = parseInt(digito);\n                        }\n                        \n                        let valor = valorDigito * Math.pow(16, posicao);\n                        explicacaoHex += `${digito} \u00d7 16<sup>${posicao}<\/sup> = ${valor}<br>`;\n                    }\n                    \n                    passos += explicacaoHex + `<br>Somando todos os valores: ${decimal}<br><br>`;\n                    break;\n                    \n                case 'gray':\n                    passos += `Para converter um c\u00f3digo Gray para decimal, primeiro convertemos para bin\u00e1rio e depois para decimal.<br><br>`;\n                    passos += `<strong>Passo 1.1:<\/strong> Converter Gray para bin\u00e1rio:<br>`;\n                    passos += `- O primeiro bit do bin\u00e1rio \u00e9 igual ao primeiro bit do Gray<br>`;\n                    passos += `- Cada bit seguinte do bin\u00e1rio \u00e9 o XOR do bit anterior do bin\u00e1rio com o bit atual do Gray<br><br>`;\n                    \n                    let binario = grayParaBinario(numeroOrigem);\n                    decimal = parseInt(binario, 2);\n                    \n                    passos += `Gray: ${numeroOrigem}<br>`;\n                    passos += `Bin\u00e1rio: ${binario}<br><br>`;\n                    \n                    passos += `<strong>Passo 1.2:<\/strong> Converter o bin\u00e1rio ${binario} para decimal:<br>`;\n                    \n                    let explicacaoGrayBin = '';\n                    for (let i = 0; i < binario.length; i++) {\n                        let posicao = binario.length - 1 - i;\n                        let valor = parseInt(binario[i]) * Math.pow(2, posicao);\n                        explicacaoGrayBin += `${binario[i]} \u00d7 2<sup>${posicao}<\/sup> = ${valor}<br>`;\n                    }\n                    \n                    passos += explicacaoGrayBin + `<br>Somando todos os valores: ${decimal}<br><br>`;\n                    break;\n                    \n                case 'bcd':\n                    passos += `Para converter BCD para decimal, dividimos os bits em grupos de 4 e convertemos cada grupo para seu valor decimal correspondente.<br><br>`;\n                    \n                    let grupos = [];\n                    for (let i = 0; i < numeroOrigem.length; i += 4) {\n                        if (i + 4 <= numeroOrigem.length) {\n                            grupos.push(numeroOrigem.substring(i, i + 4));\n                        }\n                    }\n                    \n                    passos += `BCD: ${numeroOrigem}<br>`;\n                    passos += `Grupos de 4 bits: ${grupos.join(' ')}<br><br>`;\n                    \n                    let valoresGrupos = [];\n                    for (let i = 0; i < grupos.length; i++) {\n                        valoresGrupos.push(parseInt(grupos[i], 2));\n                    }\n                    \n                    passos += `Valores decimais: ${valoresGrupos.join(' ')}<br>`;\n                    decimal = parseInt(valoresGrupos.join(''));\n                    passos += `N\u00famero decimal: ${decimal}<br><br>`;\n                    break;\n            }\n        } else {\n            decimal = parseInt(numeroOrigem);\n            passos += `O n\u00famero j\u00e1 est\u00e1 na base decimal: ${decimal}<br><br>`;\n        }\n        \n        \/\/ Passos para converter de decimal para a base de destino (se necess\u00e1rio)\n        if (baseDestino !== 'decimal') {\n            passos += `<strong>Passo ${baseOrigem !== 'decimal' ? '2' : '1'}:<\/strong> Converter ${decimal} da base decimal para ${baseDestino}.<br><br>`;\n            \n            switch(baseDestino) {\n                case 'binario':\n                    passos += `Para converter um n\u00famero decimal para bin\u00e1rio, dividimos sucessivamente por 2 e anotamos os restos, lendo-os de baixo para cima.<br><br>`;\n                    \n                    let divisoesBin = [];\n                    let restosBin = [];\n                    let tempDecimal = decimal;\n                    \n                    while (tempDecimal > 0) {\n                        divisoesBin.push(`${tempDecimal} \u00f7 2 = ${Math.floor(tempDecimal \/ 2)} com resto ${tempDecimal % 2}`);\n                        restosBin.push(tempDecimal % 2);\n                        tempDecimal = Math.floor(tempDecimal \/ 2);\n                    }\n                    \n                    passos += divisoesBin.join('<br>') + '<br><br>';\n                    passos += `Lendo os restos de baixo para cima: ${restosBin.reverse().join('')}<br>`;\n                    passos += `Resultado em bin\u00e1rio: ${resultado}<br><br>`;\n                    break;\n                    \n                case 'octal':\n                    passos += `Para converter um n\u00famero decimal para octal, dividimos sucessivamente por 8 e anotamos os restos, lendo-os de baixo para cima.<br><br>`;\n                    \n                    let divisoesOct = [];\n                    let restosOct = [];\n                    let tempDecimalOct = decimal;\n                    \n                    while (tempDecimalOct > 0) {\n                        divisoesOct.push(`${tempDecimalOct} \u00f7 8 = ${Math.floor(tempDecimalOct \/ 8)} com resto ${tempDecimalOct % 8}`);\n                        restosOct.push(tempDecimalOct % 8);\n                        tempDecimalOct = Math.floor(tempDecimalOct \/ 8);\n                    }\n                    \n                    passos += divisoesOct.join('<br>') + '<br><br>';\n                    passos += `Lendo os restos de baixo para cima: ${restosOct.reverse().join('')}<br>`;\n                    passos += `Resultado em octal: ${resultado}<br><br>`;\n                    break;\n                    \n                case 'hexadecimal':\n                    passos += `Para converter um n\u00famero decimal para hexadecimal, dividimos sucessivamente por 16 e anotamos os restos (usando A-F para valores 10-15), lendo-os de baixo para cima.<br><br>`;\n                    \n                    let divisoesHex = [];\n                    let restosHex = [];\n                    let tempDecimalHex = decimal;\n                    \n                    while (tempDecimalHex > 0) {\n                        let resto = tempDecimalHex % 16;\n                        let restoChar = resto < 10 ? resto.toString() : String.fromCharCode('A'.charCodeAt(0) + resto - 10);\n                        divisoesHex.push(`${tempDecimalHex} \u00f7 16 = ${Math.floor(tempDecimalHex \/ 16)} com resto ${resto} (${restoChar})`);\n                        restosHex.push(restoChar);\n                        tempDecimalHex = Math.floor(tempDecimalHex \/ 16);\n                    }\n                    \n                    passos += divisoesHex.join('<br>') + '<br><br>';\n                    passos += `Lendo os restos de baixo para cima: ${restosHex.reverse().join('')}<br>`;\n                    passos += `Resultado em hexadecimal: ${resultado}<br><br>`;\n                    break;\n                    \n                case 'gray':\n                    passos += `Para converter um n\u00famero decimal para c\u00f3digo Gray, primeiro convertemos para bin\u00e1rio e depois para Gray.<br><br>`;\n                    \n                    let binarioGray = decimal.toString(2);\n                    let gray = binarioParaGray(binarioGray);\n                    \n                    passos += `<strong>Passo 2.1:<\/strong> Converter decimal para bin\u00e1rio:<br>`;\n                    \n                    let divisoesBinGray = [];\n                    let restosBinGray = [];\n                    let tempDecimalBinGray = decimal;\n                    \n                    while (tempDecimalBinGray > 0) {\n                        divisoesBinGray.push(`${tempDecimalBinGray} \u00f7 2 = ${Math.floor(tempDecimalBinGray \/ 2)} com resto ${tempDecimalBinGray % 2}`);\n                        restosBinGray.push(tempDecimalBinGray % 2);\n                        tempDecimalBinGray = Math.floor(tempDecimalBinGray \/ 2);\n                    }\n                    \n                    passos += divisoesBinGray.join('<br>') + '<br><br>';\n                    passos += `Lendo os restos de baixo para cima: ${restosBinGray.reverse().join('')}<br>`;\n                    passos += `Bin\u00e1rio: ${binarioGray}<br><br>`;\n                    \n                    passos += `<strong>Passo 2.2:<\/strong> Converter bin\u00e1rio para Gray:<br>`;\n                    passos += `- O primeiro bit do Gray \u00e9 igual ao primeiro bit do bin\u00e1rio<br>`;\n                    passos += `- Cada bit seguinte do Gray \u00e9 o XOR do bit atual com o bit anterior do bin\u00e1rio<br><br>`;\n                    \n                    let explicacaoGray = '';\n                    explicacaoGray += `Primeiro bit: ${binarioGray[0]} (mant\u00e9m-se igual)<br>`;\n                    \n                    for (let i = 1; i < binarioGray.length; i++) {\n                        let xorResult = parseInt(binarioGray[i-1]) ^ parseInt(binarioGray[i]);\n                        explicacaoGray += `Bit ${i+1}: ${binarioGray[i-1]} XOR ${binarioGray[i]} = ${xorResult}<br>`;\n                    }\n                    \n                    passos += explicacaoGray + '<br>';\n                    passos += `Resultado em Gray: ${gray}<br><br>`;\n                    break;\n                    \n                case 'bcd':\n                    passos += `Para converter um n\u00famero decimal para BCD, convertemos cada d\u00edgito decimal para sua representa\u00e7\u00e3o bin\u00e1ria de 4 bits.<br><br>`;\n                    \n                    let digitosBCD = decimal.toString().split('');\n                    let gruposBCD = [];\n                    \n                    for (let i = 0; i < digitosBCD.length; i++) {\n                        let digito = parseInt(digitosBCD[i]);\n                        let digitoBinario = digito.toString(2).padStart(4, '0');\n                        gruposBCD.push(digitoBinario);\n                    }\n                    \n                    passos += `D\u00edgitos decimais: ${digitosBCD.join(' ')}<br>`;\n                    passos += `Representa\u00e7\u00e3o bin\u00e1ria de 4 bits para cada d\u00edgito:<br>`;\n                    \n                    for (let i = 0; i < digitosBCD.length; i++) {\n                        passos += `${digitosBCD[i]} \u2192 ${gruposBCD[i]}<br>`;\n                    }\n                    \n                    passos += `<br>Concatenando todos os grupos: ${gruposBCD.join(' ')}<br>`;\n                    passos += `Resultado em BCD: ${gruposBCD.join('')}<br><br>`;\n                    break;\n            }\n        } else {\n            passos += `O n\u00famero j\u00e1 foi convertido para decimal: ${decimal}<br><br>`;\n        }\n        \n        \/\/ Adicionar exemplo did\u00e1tico\n        passos += `<div class=\"cbn-passos-exemplo\">`;\n        passos += `<strong>Exemplo adicional:<\/strong><br>`;\n        \n        switch(baseOrigem) {\n            case 'decimal':\n                switch(baseDestino) {\n                    case 'binario':\n                        passos += `Decimal 10 para Bin\u00e1rio \u2192 Divida 10 por 2 sucessivamente at\u00e9 chegar a 0, anotando os restos:<br>`;\n                        passos += `10\/2 = 5 resto 0<br>5\/2 = 2 resto 1<br>2\/2 = 1 resto 0<br>1\/2 = 0 resto 1<br>`;\n                        passos += `Leitura dos restos de baixo para cima: 1010`;\n                        break;\n                    case 'octal':\n                        passos += `Decimal 25 para Octal \u2192 Divida 25 por 8 sucessivamente at\u00e9 chegar a 0, anotando os restos:<br>`;\n                        passos += `25\/8 = 3 resto 1<br>3\/8 = 0 resto 3<br>`;\n                        passos += `Leitura dos restos de baixo para cima: 31`;\n                        break;\n                    case 'hexadecimal':\n                        passos += `Decimal 42 para Hexadecimal \u2192 Divida 42 por 16 sucessivamente at\u00e9 chegar a 0, anotando os restos:<br>`;\n                        passos += `42\/16 = 2 resto 10 (A)<br>2\/16 = 0 resto 2<br>`;\n                        passos += `Leitura dos restos de baixo para cima: 2A`;\n                        break;\n                    case 'gray':\n                        passos += `Decimal 10 para Gray \u2192 Primeiro converta para bin\u00e1rio (1010), depois para Gray:<br>`;\n                        passos += `Primeiro bit: 1 (mant\u00e9m-se igual)<br>`;\n                        passos += `Segundo bit: 1 XOR 0 = 1<br>`;\n                        passos += `Terceiro bit: 0 XOR 1 = 1<br>`;\n                        passos += `Quarto bit: 1 XOR 0 = 1<br>`;\n                        passos += `Resultado em Gray: 1111`;\n                        break;\n                    case 'bcd':\n                        passos += `Decimal 25 para BCD \u2192 Converta cada d\u00edgito para sua representa\u00e7\u00e3o bin\u00e1ria de 4 bits:<br>`;\n                        passos += `2 \u2192 0010<br>5 \u2192 0101<br>`;\n                        passos += `Resultado em BCD: 00100101`;\n                        break;\n                }\n                break;\n            case 'binario':\n                passos += `Bin\u00e1rio 1010 para Decimal \u2192 Multiplique cada d\u00edgito pela pot\u00eancia de 2 correspondente \u00e0 sua posi\u00e7\u00e3o:<br>`;\n                passos += `1 \u00d7 2\u00b3 = 8<br>0 \u00d7 2\u00b2 = 0<br>1 \u00d7 2\u00b9 = 2<br>0 \u00d7 2\u2070 = 0<br>`;\n                passos += `Somando todos os valores: 10`;\n                break;\n            case 'octal':\n                passos += `Octal 31 para Decimal \u2192 Multiplique cada d\u00edgito pela pot\u00eancia de 8 correspondente \u00e0 sua posi\u00e7\u00e3o:<br>`;\n                passos += `3 \u00d7 8\u00b9 = 24<br>1 \u00d7 8\u2070 = 1<br>`;\n                passos += `Somando todos os valores: 25`;\n                break;\n            case 'hexadecimal':\n                passos += `Hexadecimal 2A para Decimal \u2192 Multiplique cada d\u00edgito pela pot\u00eancia de 16 correspondente \u00e0 sua posi\u00e7\u00e3o:<br>`;\n                passos += `2 \u00d7 16\u00b9 = 32<br>A (10) \u00d7 16\u2070 = 10<br>`;\n                passos += `Somando todos os valores: 42`;\n                break;\n            case 'gray':\n                passos += `Gray 1111 para Decimal \u2192 Primeiro converta para bin\u00e1rio:<br>`;\n                passos += `Primeiro bit: 1 (mant\u00e9m-se igual)<br>`;\n                passos += `Segundo bit: 1 XOR 1 = 0<br>`;\n                passos += `Terceiro bit: 0 XOR 1 = 1<br>`;\n                passos += `Quarto bit: 1 XOR 1 = 0<br>`;\n                passos += `Bin\u00e1rio: 1010<br>`;\n                passos += `Decimal: 1 \u00d7 2\u00b3 + 0 \u00d7 2\u00b2 + 1 \u00d7 2\u00b9 + 0 \u00d7 2\u2070 = 10`;\n                break;\n            case 'bcd':\n                passos += `BCD 00100101 para Decimal \u2192 Divida em grupos de 4 bits e converta cada grupo:<br>`;\n                passos += `0010 \u2192 2<br>0101 \u2192 5<br>`;\n                passos += `Resultado em Decimal: 25`;\n                break;\n        }\n        \n        passos += `<\/div>`;\n        \n        return passos;\n    }\n\n    \/\/ Fun\u00e7\u00e3o principal para realizar a convers\u00e3o\n    function realizarConversao() {\n        const numero = numeroEntrada.value.trim();\n        const origem = baseOrigem.value;\n        const destino = baseDestino.value;\n        \n        \/\/ Validar a entrada\n        if (!numero) {\n            erroEntrada.textContent = 'Por favor, insira um n\u00famero.';\n            erroEntrada.style.display = 'block';\n            resultadoContainer.style.display = 'none';\n            passosContainer.style.display = 'none';\n            return;\n        }\n        \n        \/\/ Verificar se o n\u00famero est\u00e1 no formato correto para a base de origem\n        if (!validarEntrada(numero, origem)) {\n            \/\/ A mensagem de erro j\u00e1 foi definida na fun\u00e7\u00e3o validarEntrada\n            erroEntrada.style.display = 'block';\n            resultadoContainer.style.display = 'none';\n            passosContainer.style.display = 'none';\n            return;\n        }\n        \n        erroEntrada.style.display = 'none';\n        \n        try {\n            \/\/ Converter para decimal primeiro (se necess\u00e1rio)\n            const decimal = paraDecimal(numero, origem);\n            \n            \/\/ Converter de decimal para a base de destino\n            const resultadoConversao = deDecimal(decimal, destino);\n            \n            \/\/ Exibir o resultado\n            resultado.textContent = resultadoConversao;\n            resultadoContainer.style.display = 'block';\n            \n            \/\/ Armazenar os valores para gerar os passos posteriormente\n            ultimoNumeroOrigem = numero;\n            ultimaBaseOrigem = origem;\n            ultimaBaseDestino = destino;\n            ultimoResultado = resultadoConversao;\n            \n            \/\/ Gerar os passos da convers\u00e3o\n            ultimosPassos = gerarPassos(numero, origem, destino, resultadoConversao);\n            \n            \/\/ Ocultar os passos (ser\u00e3o exibidos apenas quando o bot\u00e3o for clicado)\n            passosContainer.classList.remove('cbn-mostrar');\n            botaoPassos.textContent = 'Mostrar passos da convers\u00e3o';\n        } catch (e) {\n            \/\/ Capturar qualquer erro durante a convers\u00e3o\n            erroEntrada.textContent = `Erro na convers\u00e3o: ${e.message}`;\n            erroEntrada.style.display = 'block';\n            resultadoContainer.style.display = 'none';\n            passosContainer.style.display = 'none';\n        }\n    }\n\n    \/\/ Evento de clique no bot\u00e3o de converter\n    botaoConverter.addEventListener('click', realizarConversao);\n\n    \/\/ Evento de pressionar Enter no campo de entrada\n    numeroEntrada.addEventListener('keypress', function(e) {\n        if (e.key === 'Enter') {\n            realizarConversao();\n        }\n    });\n\n    \/\/ Evento de clique no bot\u00e3o de mostrar passos\n    botaoPassos.addEventListener('click', function() {\n        \/\/ Exibir ou ocultar os passos\n        if (!passosContainer.classList.contains('cbn-mostrar')) {\n            \/\/ Preencher o conte\u00fado dos passos\n            passosConteudo.innerHTML = ultimosPassos;\n            \n            \/\/ Mostrar o container de passos\n            passosContainer.classList.add('cbn-mostrar');\n            \n            \/\/ Atualizar o texto do bot\u00e3o\n            botaoPassos.textContent = 'Ocultar passos da convers\u00e3o';\n        } else {\n            \/\/ Ocultar o container de passos\n            passosContainer.classList.remove('cbn-mostrar');\n            \n            \/\/ Atualizar o texto do bot\u00e3o\n            botaoPassos.textContent = 'Mostrar passos da convers\u00e3o';\n        }\n    });\n\n    \/\/ Evento de mudan\u00e7a na base de origem\n    baseOrigem.addEventListener('change', function() {\n        \/\/ Limpar mensagem de erro\n        erroEntrada.style.display = 'none';\n        \n        \/\/ Atualizar o placeholder do campo de entrada\n        switch(baseOrigem.value) {\n            case 'decimal':\n                numeroEntrada.placeholder = 'Digite um n\u00famero decimal (ex: 42)';\n                break;\n            case 'binario':\n                numeroEntrada.placeholder = 'Digite um n\u00famero bin\u00e1rio (ex: 101010)';\n                break;\n            case 'octal':\n                numeroEntrada.placeholder = 'Digite um n\u00famero octal (ex: 52)';\n                break;\n            case 'hexadecimal':\n                numeroEntrada.placeholder = 'Digite um n\u00famero hexadecimal (ex: 2A)';\n                break;\n            case 'gray':\n                numeroEntrada.placeholder = 'Digite um c\u00f3digo Gray (ex: 111111)';\n                break;\n            case 'bcd':\n                numeroEntrada.placeholder = 'Digite um c\u00f3digo BCD (ex: 00100101)';\n                break;\n        }\n    });\n\n    \/\/ Verificar a entrada quando o utilizador digita\n    numeroEntrada.addEventListener('input', function() {\n        const numero = numeroEntrada.value.trim();\n        const origem = baseOrigem.value;\n        \n        \/\/ Verificar se o n\u00famero est\u00e1 no formato correto para a base de origem\n        if (numero && !validarEntrada(numero, origem)) {\n            \/\/ A mensagem de erro j\u00e1 foi definida na fun\u00e7\u00e3o validarEntrada\n            erroEntrada.style.display = 'block';\n        } else {\n            erroEntrada.style.display = 'none';\n        }\n    });\n})();\n<\/script>\n\n\n\n<div style=\"height:93px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<!DOCTYPE html>\n<html lang=\"pt-BR\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Observa\u00e7\u00f5es T\u00e9cnicas &#8211; Expans\u00edvel<\/title>\n    <style>\n        .info-section {\n            margin: 20px 0;\n        }\n        \n        .expandable-btn {\n            background-color: #6bb6ff;\n            color: white;\n            padding: 10px 18px;\n            border: none;\n            border-radius: 5px;\n            cursor: pointer;\n            font-size: 14px;\n            font-weight: 500;\n            transition: all 0.3s ease;\n            display: inline-flex;\n            align-items: center;\n            gap: 8px;\n        }\n        \n        .expandable-btn:hover {\n            background-color: #4da6ff;\n            transform: translateY(-1px);\n        }\n        \n        .expandable-content {\n            max-height: 0;\n            overflow: hidden;\n            transition: max-height 0.4s ease-out;\n            background-color: #e6f3ff;\n            border-left: 4px solid #6bb6ff;\n            margin-top: 12px;\n            border-radius: 0 5px 5px 0;\n        }\n        \n        .expandable-content.active {\n            max-height: 350px;\n            padding: 18px;\n        }\n        \n        .expandable-content h4 {\n            margin: 0 0 12px 0;\n            color: #333;\n            font-size: 16px;\n        }\n        \n        .expandable-content ul {\n            margin: 0;\n            padding-left: 20px;\n            color: #333;\n        }\n        \n        .expandable-content li {\n            margin-bottom: 10px;\n            line-height: 1.5;\n            font-size: 14px;\n        }\n        \n        .expandable-content strong {\n            color: #0066cc;\n        }\n    <\/style>\n<\/head>\n<body>\n\n    <div class=\"info-section\">\n        <button class=\"expandable-btn\" onclick=\"toggleContent()\">\n             <span>Observa\u00e7\u00f5es T\u00e9cnicas<\/span>\n        <\/button>\n        <div class=\"expandable-content\" id=\"expandableContent\">\n            <h4>Observa\u00e7\u00f5es Importantes<\/h4>\n            <ul>\n                <li>N\u00e3o existe convers\u00e3o direta eficiente entre <strong>Octal \u21c4 Hexadecimal<\/strong> sem passar pelo <strong>Bin\u00e1rio como intermedi\u00e1rio<\/strong>.<\/li>\n                <li>O c\u00f3digo <strong>Gray<\/strong> n\u00e3o \u00e9 uma base posicional, \u00e9 uma codifica\u00e7\u00e3o usada em sistemas digitais para minimizar erros na transi\u00e7\u00e3o de estados (ex.: encoders, sistemas digitais embarcados).<\/li>\n                <li><strong>BCD<\/strong> \u00e9 fundamental em displays de 7 segmentos e sistemas que manipulam n\u00fameros decimais em hardware.<\/li>\n            <\/ul>\n        <\/div>\n    <\/div>\n\n    <script>\n        function toggleContent() {\n            const content = document.getElementById('expandableContent');\n            const button = document.querySelector('.expandable-btn span');\n            \n            content.classList.toggle('active');\n            \n            \/\/ Muda o texto do bot\u00e3o\n            if (content.classList.contains('active')) {\n                button.textContent = 'Ocultar Observa\u00e7\u00f5es';\n            } else {\n                button.textContent = 'Observa\u00e7\u00f5es T\u00e9cnicas';\n            }\n        }\n    <\/script>\n\n<\/body>\n<\/html>\n\n\n\n<div style=\"text-align: center; margin: 20px 0;\">\n    <a href=\"https:\/\/hangarmma.com.br\/blog\/teste-conversao-de-bases\/\" \n       target=\"_blank\"\n       rel=\"noopener noreferrer\"\n       style=\"display: inline-block;\n              background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n              color: white;\n              text-decoration: none;\n              padding: 16px 32px;\n              border-radius: 50px;\n              font-weight: 600;\n              font-size: 16px;\n              box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3);\n              transition: all 0.3s ease;\n              border: none;\n              cursor: pointer;\n              position: relative;\n              overflow: hidden;\"\n       onmouseover=\"this.style.transform='translateY(-2px)'; this.style.boxShadow='0 12px 35px rgba(102, 126, 234, 0.4)'\"\n       onmouseout=\"this.style.transform='translateY(0)'; this.style.boxShadow='0 8px 25px rgba(102, 126, 234, 0.3)'\">\n        \u2728 Teste de Convers\u00e3o de Bases\n    <\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Conversores de Bases Num\u00e9ricas Insira um n\u00famero, escolha a base de origem e a base de destino para realizar a convers\u00e3o. N\u00famero a converter: Por favor, insira um n\u00famero v\u00e1lido para a base selecionada. Base de origem: DecimalBin\u00e1rioOctalHexadecimalGrayBCD Base de destino: DecimalBin\u00e1rioOctalHexadecimalGrayBCD Converter Resultado da convers\u00e3o: Mostrar passos da convers\u00e3o Passos da convers\u00e3o: Observa\u00e7\u00f5es T\u00e9cnicas [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":25533,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-25524","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Conversor de Unidades - Banca ANAC<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hangarmma.com.br\/blog\/conversor-de-unidades\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Conversor de Unidades - Banca ANAC\" \/>\n<meta property=\"og:description\" content=\"Conversores de Bases Num\u00e9ricas Insira um n\u00famero, escolha a base de origem e a base de destino para realizar a convers\u00e3o. N\u00famero a converter: Por favor, insira um n\u00famero v\u00e1lido para a base selecionada. Base de origem: DecimalBin\u00e1rioOctalHexadecimalGrayBCD Base de destino: DecimalBin\u00e1rioOctalHexadecimalGrayBCD Converter Resultado da convers\u00e3o: Mostrar passos da convers\u00e3o Passos da convers\u00e3o: Observa\u00e7\u00f5es T\u00e9cnicas [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hangarmma.com.br\/blog\/conversor-de-unidades\/\" \/>\n<meta property=\"og:site_name\" content=\"HANGAR MMA\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SimuladosMMA\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-29T01:59:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hangarmma.com.br\/blog\/wp-content\/uploads\/2025\/05\/capa.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1433\" \/>\n\t<meta property=\"og:image:height\" content=\"724\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/conversor-de-unidades\\\/\",\"url\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/conversor-de-unidades\\\/\",\"name\":\"Conversor de Unidades - Banca ANAC\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/conversor-de-unidades\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/conversor-de-unidades\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/capa.png\",\"datePublished\":\"2025-05-28T02:57:25+00:00\",\"dateModified\":\"2025-05-29T01:59:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/conversor-de-unidades\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/conversor-de-unidades\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/conversor-de-unidades\\\/#primaryimage\",\"url\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/capa.png\",\"contentUrl\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/capa.png\",\"width\":1433,\"height\":724},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/conversor-de-unidades\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Conversor de Unidades &#8211; Banca ANAC\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/\",\"name\":\"HANGAR MMA\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/#organization\",\"name\":\"HANGAR MMA\",\"url\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/hangarmma.simuladosanac.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/04\\\/pp-1.jpg\",\"contentUrl\":\"https:\\\/\\\/hangarmma.simuladosanac.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/04\\\/pp-1.jpg\",\"width\":207,\"height\":207,\"caption\":\"HANGAR MMA\"},\"image\":{\"@id\":\"https:\\\/\\\/hangarmma.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/SimuladosMMA\",\"https:\\\/\\\/www.instagram.com\\\/hangar_mma\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCV1vx9I33-R1F8_bGVLBttg\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Conversor de Unidades - Banca ANAC","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hangarmma.com.br\/blog\/conversor-de-unidades\/","og_locale":"pt_BR","og_type":"article","og_title":"Conversor de Unidades - Banca ANAC","og_description":"Conversores de Bases Num\u00e9ricas Insira um n\u00famero, escolha a base de origem e a base de destino para realizar a convers\u00e3o. N\u00famero a converter: Por favor, insira um n\u00famero v\u00e1lido para a base selecionada. Base de origem: DecimalBin\u00e1rioOctalHexadecimalGrayBCD Base de destino: DecimalBin\u00e1rioOctalHexadecimalGrayBCD Converter Resultado da convers\u00e3o: Mostrar passos da convers\u00e3o Passos da convers\u00e3o: Observa\u00e7\u00f5es T\u00e9cnicas [&hellip;]","og_url":"https:\/\/hangarmma.com.br\/blog\/conversor-de-unidades\/","og_site_name":"HANGAR MMA","article_publisher":"https:\/\/www.facebook.com\/SimuladosMMA","article_modified_time":"2025-05-29T01:59:16+00:00","og_image":[{"width":1433,"height":724,"url":"https:\/\/hangarmma.com.br\/blog\/wp-content\/uploads\/2025\/05\/capa.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. tempo de leitura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/hangarmma.com.br\/blog\/conversor-de-unidades\/","url":"https:\/\/hangarmma.com.br\/blog\/conversor-de-unidades\/","name":"Conversor de Unidades - Banca ANAC","isPartOf":{"@id":"https:\/\/hangarmma.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hangarmma.com.br\/blog\/conversor-de-unidades\/#primaryimage"},"image":{"@id":"https:\/\/hangarmma.com.br\/blog\/conversor-de-unidades\/#primaryimage"},"thumbnailUrl":"https:\/\/hangarmma.com.br\/blog\/wp-content\/uploads\/2025\/05\/capa.png","datePublished":"2025-05-28T02:57:25+00:00","dateModified":"2025-05-29T01:59:16+00:00","breadcrumb":{"@id":"https:\/\/hangarmma.com.br\/blog\/conversor-de-unidades\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hangarmma.com.br\/blog\/conversor-de-unidades\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/hangarmma.com.br\/blog\/conversor-de-unidades\/#primaryimage","url":"https:\/\/hangarmma.com.br\/blog\/wp-content\/uploads\/2025\/05\/capa.png","contentUrl":"https:\/\/hangarmma.com.br\/blog\/wp-content\/uploads\/2025\/05\/capa.png","width":1433,"height":724},{"@type":"BreadcrumbList","@id":"https:\/\/hangarmma.com.br\/blog\/conversor-de-unidades\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/hangarmma.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Conversor de Unidades &#8211; Banca ANAC"}]},{"@type":"WebSite","@id":"https:\/\/hangarmma.com.br\/blog\/#website","url":"https:\/\/hangarmma.com.br\/blog\/","name":"HANGAR MMA","description":"","publisher":{"@id":"https:\/\/hangarmma.com.br\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hangarmma.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/hangarmma.com.br\/blog\/#organization","name":"HANGAR MMA","url":"https:\/\/hangarmma.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/hangarmma.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/hangarmma.simuladosanac.com\/blog\/wp-content\/uploads\/2019\/04\/pp-1.jpg","contentUrl":"https:\/\/hangarmma.simuladosanac.com\/blog\/wp-content\/uploads\/2019\/04\/pp-1.jpg","width":207,"height":207,"caption":"HANGAR MMA"},"image":{"@id":"https:\/\/hangarmma.com.br\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SimuladosMMA","https:\/\/www.instagram.com\/hangar_mma\/","https:\/\/www.youtube.com\/channel\/UCV1vx9I33-R1F8_bGVLBttg"]}]}},"_links":{"self":[{"href":"https:\/\/hangarmma.com.br\/blog\/wp-json\/wp\/v2\/pages\/25524","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hangarmma.com.br\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hangarmma.com.br\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hangarmma.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hangarmma.com.br\/blog\/wp-json\/wp\/v2\/comments?post=25524"}],"version-history":[{"count":15,"href":"https:\/\/hangarmma.com.br\/blog\/wp-json\/wp\/v2\/pages\/25524\/revisions"}],"predecessor-version":[{"id":25564,"href":"https:\/\/hangarmma.com.br\/blog\/wp-json\/wp\/v2\/pages\/25524\/revisions\/25564"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hangarmma.com.br\/blog\/wp-json\/wp\/v2\/media\/25533"}],"wp:attachment":[{"href":"https:\/\/hangarmma.com.br\/blog\/wp-json\/wp\/v2\/media?parent=25524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}