Sincronização bidirecional: modificar o decimal recalcula o fluxo binário instantaneamente.
Converta binário para decimal com nosso conversor e calculadora. Suporta complemento de dois com sinal, bits fracionários e cálculo passo a passo.
Sincronização bidirecional: modificar o decimal recalcula o fluxo binário instantaneamente.
Converta números binários para decimal com nosso conversor e calculadora de alta precisão. Suporte a complemento de dois com sinal, bits fracionários e cálculo passo a passo.
Sequência contínua de dígitos binários avaliada por meio de acumulação polinomial pelo método de Horner em O(n), representando potências de dois do MSB ao LSB. Aceita pontos fracionários de base (radix point) no padrão IEEE 754, prefixos padrão '0b' e delimitadores visuais.
Limite de registrador do processador de destino que estabelece limites de estouro aritmético (overflow), posicionamento do bit de sinal e restrições de extensão com zeros. Valores que excedem 53 bits transitam automaticamente para BigInt de precisão arbitrária para evitar o truncamento da mantissa segundo o padrão IEEE 754.
Convenção matemática que rege a interpretação de valores negativos. O complemento de dois atribui peso negativo de -2^(n-1) ao MSB; Sem sinal trata todos os bits como magnitudes não negativas até 2^n - 1; Sinal e magnitude reserva o bit n-1 exclusivamente para a polaridade.
Bits fracionários posicionados à direita do ponto de base, avaliados como expoentes inteiros negativos de base 2 (0,5, 0,25, 0,125, 0,0625 etc.). Frações racionais não terminantes são limitadas à profundidade de mantissa do registrador de destino.
Serialização sequencial de bytes em palavras binárias multi-octeto. O padrão Big-Endian (Network Byte Order da RFC 791) alinha o MSB no deslocamento de byte 0, enquanto o Little-Endian (x86-64 / ARM NEON) armazena o LSB primeiro, exigindo realinhamento por troca de bytes (byte-swap) durante a inspeção de pacotes de rede.
Configuração de espaçamento que agrupa os dígitos binários em nibbles legíveis de 4 bits ou octetos de 8 bits para acelerar a inspeção visual de paridade e prevenir erros de transposição em transcrições manuais, sem alterar os valores matemáticos.
Em um sistema em complemento de dois de n bits, os valores abrangem um intervalo assimétrico de -2^(n-1) a +2^(n-1) - 1 (por exemplo, de -128 a +127 em 8 bits, ou de -2.147.483.648 a +2.147.483.647 em 32 bits). Como o zero (00000000) ocupa uma posição na partição não negativa, o valor mais negativo (-2^(n-1)) não possui correspondente positivo equivalente. Tentar negar -128 ou calcular abs(-128) em um registrador com sinal de 8 bits dispara imediatamente uma falha de estouro aritmético (overflow) ou retorna ciclicamente para -128 (wrap-around). Compiladores e rotinas criptográficas (como aritmética modular em tempo constante em implementações de Web Crypto) evitam essa armadilha expandindo o sinal das entradas para limites de palavra maiores (por exemplo, de int8_t para int16_t) antes da inversão matemática.
Uma fração é finita em determinada base numérica se e somente se todos os fatores primos do seu denominador irredutível dividirem a base. Em binário (base 2), o único fator primo é 2. Consequentemente, frações decimais simples cujos denominadores contenham o fator primo 5 (como 0,1 = 1/(2*5) ou 0,2 = 1/5) geram expansões binárias dízimas periódicas infinitas: 0.0001100110011..._2. Ao serem armazenadas em registradores de ponto flutuante binário IEEE 754 de 64 bits, a mantissa é truncada em 53 bits, introduzindo um erro de arredondamento intrínseco de 0,1000000000000000055511151231257827021181583404541015625. Cálculos financeiros e criptográficos nunca devem usar conversões de float binário; utilize dimensionamento racional exato (pares de BigInt de numerador / denominador) ou representações BCD em ponto fixo.
Ao dividir inteiros binários com sinal por potências de dois usando deslocamento de bits (bitwise shift), executar um deslocamento lógico à direita (>>> em JavaScript, SHR em x86 ASM) insere bits zero no MSB, o que corrompe o bit de sinal e transforma instantaneamente inteiros negativos com sinal em números positivos gigantescos sem sinal (por exemplo, -8 >>> 1 resulta em 2.147.483.644 no espaço de 32 bits). Em contrapartida, um deslocamento aritmético à direita (>> em C/Java/JS, SAR em x86 ASM) replica o MSB pelas posições vagas deslocadas (extensão de sinal). Observe que o deslocamento aritmético à direita arredonda em direção ao infinito negativo (floor(N / 2^k)), o que significa que -7 >> 1 resulta em -4, enquanto a divisão inteira decimal comum trunca em direção a zero (-7 / 2 = -3).
Padrões da IETF (RFC 791 IPv4, RFC 2460 IPv6, TCP/UDP) determinam a Network Byte Order, que é estritamente Big-Endian (MSB armazenado no endereço de memória mais baixo). Ambientes de execução de clientes modernos (x86-64, ARM Apple Silicon) executam nativamente em modo Little-Endian (LSB no endereço mais baixo). Desserializar uma string binária de porta de 16 bits '00000001 10111011' (decimal 443 para HTTPS) diretamente em um registrador da máquina hospedeira sem invocar primitivas de inversão de bytes (como ntohs() ou DataView.prototype.getUint16(offset, false)) inverte os octetos para '10111011 00000001', avaliando para o valor decimal 47.873 e causando falhas de roteamento na conexão.
Implementações ingênuas de binário para decimal calculam o valor de cada bit por meio de chamadas isoladas de exponenciação (soma de b_i * 2^i), exigindo O(n^2) operações de bits para uma string de n bits e provocando estrangulamento de CPU (CPU throttling) em motores JavaScript de thread única diante de grandes fluxos de bits (como chaves criptográficas RSA de 4096 bits). O algoritmo ideal emprega o método de Horner: inicialize um acumulador em 0 e itere do MSB ao LSB executando acumulador = (acumulador << 1) | bit em uma única passagem O(n). Em ambientes isolados (sandbox) no lado do cliente, combinar essa acumulação bit a bit em O(n) com BigInt nativo garante execução em submilissegundos sem bloquear o loop de eventos (event loop) do navegador nem transmitir material criptográfico sensível pela rede.
Na avaliação em complemento de dois com sinal, o bit mais significativo (MSB) atua como indicador de sinal. Se você inserir um inteiro positivo de 8 bits como 01111111 (+127) e um parser remover automaticamente o zero à esquerda considerando-o espaço em branco redundante, a string é reduzida para os 7 bits 1111111. Ao ser avaliada contra uma estrutura com sinal de 7 bits, o 1 mais à esquerda passa a ser interpretado como bit de sinal, interpretando erroneamente +127 como -1 (-64 + 32 + 16 + 8 + 4 + 2 + 1 = -1). Solução: Declare explicitamente a largura de palavra da arquitetura de destino (8, 16, 32 ou 64 bits) para aplicar o preenchimento com zeros (zero-padding) no registrador, garantindo que os zeros à esquerda sejam preservados como delimitadores de polaridade positiva.
Os tipos primitivos Number no padrão ECMAScript estão em conformidade com o formato de ponto flutuante de precisão dupla IEEE 754, alocando 52 bits para a fração mais 1 bit implícito à esquerda. Converter sequências binárias com mais de 53 bits (como endereços de memória de 64 bits ou blocos de estado SHA-256) usando parseInt(str, 2) provoca desvio silencioso de bits, arredondando os bits menos significativos além de Number.MAX_SAFE_INTEGER (9.007.199.254.740.991 ou 2^53 - 1). Solução: Faça o parse de sequências binárias que excedam 53 bits diretamente para BigInt nativo usando BigInt('0b' + cleanBinaryStr) ou acumulação de Horner com BigInt, que suporta larguras de bits arbitrárias sem qualquer perda na mantissa.
Ao converter frações decimais racionais em números binários em ponto fixo, as frações cujos denominadores possuem fatores primos além de potências de 2 geram sequências binárias periódicas infinitas (por exemplo, 0,3333... ou 0,1 em decimal). Tentar calcular a representação decimal exata de uma fração binária truncada arbitrariamente sem controlar os limites racionais gera discrepâncias visíveis de precisão. Solução: Defina um limite rigoroso de precisão fracionária (por exemplo, 32 ou 64 bits de mantissa) e utilize aritmética de frações racionais (pares de BigInt P/Q) em conjunto com as regras de desempate por arredondamento para o par mais próximo (round-to-nearest-even) do padrão IEEE 754 para preservar a equivalência matemática exata.
Colar sequências binárias brutas a partir de desmontagens (disassembly dumps), capturas de pacotes do Wireshark ou inspetores de memória frequentemente introduz prefixos de linguagem ('0b', '0B'), escapes hexadecimais, delimitadores de bytes (espaços, sublinhados, hifens, dois-pontos) ou quebras de linha finais. Motores de conversão de inteiros padrão rejeitam caracteres não numéricos retornando NaN ou exceções de sintaxe. Solução: Encaminhe a entrada por meio de uma sanitização determinística com regex (`s.replace(/^0b/i, '').replace(/[^01.]/g, '')`) que elimine artefatos léxicos e valide a unicidade do ponto de base em tempo O(n) antes da transformação numérica.
Para converter um número binário para decimal, multiplique cada dígito binário (bit) por 2 elevado à potência do seu peso posicional com índice zero (começando em 0 no LSB mais à direita) e some os produtos: Decimal = ∑ (b_i × 2^i). Por exemplo, para converter o binário 11010110_2 para decimal: (1 × 2^7) + (1 × 2^6) + (0 × 2^5) + (1 × 2^4) + (0 × 2^3) + (1 × 2^2) + (1 × 2^1) + (0 × 2^0) = 128 + 64 + 0 + 16 + 0 + 4 + 2 + 0 = 214 em decimal na base 10. Alternativamente, o método polinomial de Horner calcula essa expressão da esquerda para a direita em tempo O(n): inicie com o acumulador em 0 e, para cada bit, multiplique o acumulador por 2 e some o bit.
Na notação em complemento de dois, o bit mais significativo (MSB) possui um peso posicional negativo igual a -2^(n-1), enquanto todos os outros n-1 bits restantes mantêm pesos posicionais positivos: Decimal = (-b_{n-1} × 2^{n-1}) + ∑_{i=0}^{n-2} (b_i × 2^i). Para um valor binário com sinal de 8 bits 11111000_2, o valor decimal é (-1 × 2^7) + (1 × 2^6) + (1 × 2^5) + (1 × 2^4) + (1 × 2^3) + 0 + 0 + 0 = -128 + 64 + 32 + 16 + 8 = -8. Para converter um decimal negativo de volta para complemento de dois, inverta todos os bits do seu equivalente positivo e adicione 1.
A diferença fundamental entre números binários com e sem sinal está na forma como o bit mais significativo (MSB) é interpretado: o binário sem sinal atribui a todos os n bits um peso não negativo (intervalo: 0 a 2^n - 1), enquanto o binário com sinal utiliza o MSB como indicador de polaridade via complemento de dois (intervalo: -2^(n-1) a +2^(n-1) - 1). Por exemplo, a sequência de 8 bits 11111111 resulta em 255 em notação sem sinal, mas representa -1 em complemento de dois com sinal. Selecionar uma convenção de sinal incorreta provoca falhas graves de underflow aritmético ou erros de estouro circular em registradores de software.
Para converter um número binário fracionário com ponto de base (radix point) para decimal, some as potências positivas de 2 para os bits inteiros à esquerda do ponto e as potências negativas de 2 (2^-j) para os bits fracionários à direita: Decimal = ∑ (b_i × 2^i) + ∑ (b_{-j} × 2^{-j}). Por exemplo, para o binário 1011.1101_2: a parte inteira é 8 + 0 + 2 + 1 = 11; a parte fracionária é (1 × 2^-1 = 0,5) + (1 × 2^-2 = 0,25) + (0 × 2^-3 = 0) + (1 × 2^-4 = 0,0625) = 0,8125. Somando ambas as partes obtém-se 11,8125 em decimal.
Os computadores usam binário em vez de decimal porque transistores semicondutores físicos operam com amplas margens de ruído e nenhuma ambiguidade elétrica em dois estados bem definidos: saturação LIGADO (tensão alta, representando o 1 lógico) e corte DESLIGADO (tensão nula ou aterramento, representando o 0 lógico). Um computador eletrônico decimal na base 10 exigiria a distinção de 10 limiares de tensão muito próximos (por exemplo, 0,3 V, 0,6 V, 0,9 V), sofrendo degradação severa provocada por ruído térmico, envelhecimento de componentes e correntes de fuga capacitiva, ao passo que o chaveamento binário integra-se de forma direta com a álgebra booleana e as portas lógicas CMOS.
A função parseInt() do JavaScript converte strings binárias em floats de precisão dupla segundo o padrão IEEE 754, que fornecem apenas 53 bits de precisão inteira exata em seu significando (Number.MAX_SAFE_INTEGER = 2^53 - 1 = 9.007.199.254.740.991). Ao processar um inteiro binário de 64 bits que ultrapassa 53 bits, os 11 bits menos significativos são arredondados para o valor em ponto flutuante representável mais próximo, provocando corrupção silenciosa de dados. Para conversões completas de 64 ou 128 bits com ou sem sinal, deve-se usar BigInt nativo de precisão arbitrária: BigInt('0b' + binaryString).
Converta códigos de cor HEX em RGBA com opacidade e transparência alfa instantaneamente. Suporta códigos hex de 3, 6 e 8 dígitos, conversão em lote e saída CSS pronta para uso.
Calculadora de comissões para simular repasses de vendas, taxas escalonadas, divisão de corretores e metas reversas para atingir o faturamento ideal.
Sorteie opções, nomes ou vencedores com pesos personalizados, modo eliminação, giros CSPRNG criptograficamente justos e gerador de equipas.
Calcule juros simples, quitação de empréstimos e montante no vencimento com contagem exata de dias. Isole capital, taxa ou prazo e compare a defasagem frente aos juros compostos.
Calcule a economia na parcela mensal, redução total de juros e ponto de equilíbrio com nosso simulador de refinanciamento de veículos. Compare novas taxas, prazos e custos.
Calcule sua frequência cardíaca alvo e 5 zonas de treino aeróbico pelas fórmulas de Karvonen e Tanaka. Otimize queima de gordura e VO2 máx.