-->

Calculadora binaria online

7 minute read

Calculadora Binaria

Executar aritmética básica com números binários

Sobre a calculadora binária

Esta é uma calculadora binária de precisão arbitrária. Ele pode adicionar, subtrair, multiplicar ou dividir dois números binários. Ele pode operar com números inteiros muito grandes e valores fracionários muito pequenos - e combinações de ambos.

Esta calculadora é, por design, muito simples. Você pode usá-lo para explorar números binários em sua forma mais básica. Ele opera em números binários “puros”, não em formatos de número de computador como complemento de dois ou ponto flutuante binário IEEE.

Como usar a calculadora binária

Entrada

Calculadora binaria online
Insira um operando em cada caixa. Cada operando deve ser um número positivo ou negativo, sem vírgulas ou espaços, não expresso em fração e não em notação científica. Os valores fracionários são indicados com um ponto de raiz (‘.’, Não ‘,’), e os números negativos são prefixados com um sinal de menos (“-”).
Selecione uma operação (+, - *, /).
Altere o número de bits que deseja exibir no resultado binário, se for diferente do padrão (isso se aplica apenas à divisão e apenas quando a resposta tiver uma parte fracionária infinita).
Clique em ‘Calcular’ para realizar a operação.
Clique em ‘Limpar’ para redefinir o formulário e começar do zero.

Se você quiser alterar um operando, basta digitar sobre o número original e clicar em ‘Calcular’ - não há necessidade de clicar em ‘Limpar’ primeiro. Da mesma forma, você pode alterar o operador e manter os operandos como estão.

Output

Além do resultado da operação, é mostrado o número de dígitos nos operandos e o resultado. Por exemplo, ao calcular 1,1101 * 111,100011 = 1101,1010110111, a caixa “Num Dígitos” exibe “1,4 * 3,6 = 4,10”. Isso significa que o operando 1 tem um dígito em sua parte inteira e quatro dígitos em sua parte fracionária, o operando 2 tem três dígitos em sua parte inteira e seis dígitos em sua parte fracionária e o resultado tem quatro dígitos em sua parte inteira e dez dígitos em sua parte fracionária.

Adição, subtração e multiplicação sempre produzem um resultado finito, mas a divisão pode (de fato, na maioria dos casos) produzir um valor fracionário infinito (repetitivo). Os resultados infinitos são truncados - não arredondados - para o número especificado de bits. Os resultados infinitos são anotados com reticências (...) anexada ao resultado e com um símbolo '∞' como o número de dígitos fracionários. Para divisões que representam frações diádicas, o resultado será finito e exibido com precisão total - independentemente da configuração do número de bits fracionários.

Por exemplo, 1/1010 a 24 bits fracionários é 0,000110011001100110011001…, com “Number Digits” = “1.0 / 4.0 = 0.∞”; 11/100 = 0,11, com “Números de dígitos” = “2,0 / 3,0 = 0,2”.

Usando a calculadora para explorar a aritmética de ponto flutuante

Embora esta calculadora implemente aritmética binária pura, você pode usá-la para explorar a aritmética de ponto flutuante. Por exemplo, digamos que você queira saber por que, usando a aritmética de ponto flutuante binário de precisão dupla IEEE, 129,95 * 10 = 1299,5, mas 129,95 * 100 = 12994,99999999998181010596454143524169921875.

Existem duas fontes de imprecisão nesse cálculo: conversão de decimal em ponto flutuante e aritmética binária de precisão limitada. A conversão de decimal em ponto flutuante introduz inexatidão porque um operando decimal pode não ter um equivalente de ponto flutuante exato; A aritmética binária de precisão limitada introduz inexatidão porque um cálculo binário pode produzir mais bits do que pode ser armazenado. Nestes casos, ocorre o arredondamento.

10 e 100 (ambos decimais) têm equivalentes exatos de ponto flutuante (1010 e 1100100, respectivamente), mas 129,95 tem apenas uma representação aproximada. Meu conversor de decimal em binário dirá que, em binário puro, 129,95 tem uma fração de repetição infinita:

10000001.111100110011001100110011001100110011001100110011…

Arredondado para 53 bits de precisão dupla, é

10000001.11110011001100110011001100110011001100110011

que é 129,94999999999998863131622783839702606201171875 em decimal.

129.95 * 10

129,95 * 10 é calculado como

10000001.11110011001100110011001100110011001100110011 * 1010

que é igual a 10100010011.0111111111111111111111111111111111111111111

(Tente!)

Isso tem 54 bits significativos de comprimento, então quando é arredondado para 53 bits torna-se

10100010011.1 = 1299.5

129.95 * 100

129,95 * 100 é calculado como

10000001.11110011001100110011001100110011001100110011 * 1100100

que é igual a 11001011000010.111111111111111111111111111111111111111011

Isso tem 56 bits significativos de comprimento, então, quando é arredondado para 53 bits, torna-se

11001011000010.11111111111111111111111111111111111111111

que é igual a 12994.999999999998181010596454143524169921875

Discussão

Para trabalhar com este exemplo, você teve que agir como um computador, por mais tedioso que isso fosse. Primeiro, você teve que converter os operandos em binários, arredondando-os se necessário; então, você tinha que multiplicá-los e arredondar o resultado.

Limites

Por razões práticas, o tamanho das entradas - e o número de bits fracionários em um resultado de divisão infinita - é limitado. Se você exceder esses limites, receberá uma mensagem de erro. Mas dentro desses limites, todos os resultados serão precisos (no caso de divisão, os resultados são precisos por meio da posição do bit truncado).