1s Complement And 2s Complement In Bininary Option
Estou tentando aprender sistema de números binários e quase muito novo. Acabei de terminar um capítulo sobre a conversação numérica binária, a adição, a subtração etc. com algumas coisas básicas. Mas agora vejo um capítulo sobre o complemento 1s e o complemento 2s. Eu sei o que é o número assinado, a magnitude assinada e como o dígito binário armazenado na memória em 8bits, 16 bits, etc. Mas o problema é que eu não entendi porque 1s complementam e complementam 2s. Também por que devemos usar o complemento 2s e por que é melhor etc. Estou seguindo um livro, tem a diretriz para converter em complemento 1s e complemento 2s. Mas nada explicou por que 1s complementam e complementam 2s. Então eu preciso de ajuda para entender isso mais profundamente. Todas as sugestões de livros para o sistema de números binários etc são apreciadas. Obrigado, Advance Robin perguntou 18 de janeiro às 10:41 fechado como muito amplo em 2501. fvu. Martin James. Recursão infinita. Yvette Colomb 2 de fevereiro às 6:58 Há muitas respostas possíveis, ou boas respostas serão muito longas para este formato. Adicione detalhes para restringir o conjunto de respostas ou para isolar um problema que pode ser respondido em alguns parágrafos. Se esta questão pode ser reformulada para se ajustar às regras na Central de Ajuda. Edite a pergunta. Os artigos da Wikipedia para complementos de 139s e 239s e números binários respondem todas as suas perguntas e muito mais. Ndash Jonathon Reinhart 18 de janeiro às 10:44 Especialmente a página de complemento de dois anos contém a resposta autêntica para você pergunta: O sistema de complemento de dois anos tem a vantagem de que as operações aritméticas fundamentais de adição, subtração e multiplicação são idênticas às dos números binários não assinados (Desde que as entradas sejam representadas no mesmo número de bits e qualquer excesso além desses bits seja descartado do resultado). Esta propriedade torna o sistema mais simples de implementar e capaz de manipular facilmente aritmética de maior precisão. Ndash fvu 18 de janeiro às 10:45 Uma codificação é necessária para que todos concordem quanto significa um conjunto de valores de 0 e 1 bit. Mais óbvio se você quiser representar o texto, a maioria de todos concorda que 01000001 significa 39A39. O mesmo se aplica aos números, você precisa concordar sobre como codificar valores negativos. Começaram um triste erro na década de 1960, um erro que continua assombrando este site sem nenhum motivo aparente. Não é importante, além de ensinar aos alunos, que a codificação é importante. Ndash Hans Passant 18 de janeiro às 10:56 Muito obrigado por sua ótima resposta. Depois de resolver muitos problemas de matemática em binário, minha experiência é: na adição binária normal funciona bem ao trabalhar com 2 números positivos ou sem nenhum bit de sinal. Mas ao fazer adição ou subtração com números negativos que têm bits de sinal negativo fazem problema. Mas é possível resolver qualquer método de adição ou subtração com o método complementar de 239s. Ndash Robin Islam 19 de janeiro às 10:26 O complemento 1s é simplesmente um gate bitwise NOT, ou seja, 1011 torna-se 0100. 2s complementos é o mais comumente usado para representação de inteiros assinados porque obedece as regras de adição e subtração. Se você adicionar 1 a 1111, você recebe 0000. Portanto, 1111 deve ser -1. Você pode usar qualquer sistema, mas alguns têm contras ou pros. O complemento de 1 é muito simples de entender, mas não fornece aritmética uniforme (quando você deseja adicionar dois números, você deve distinguir casos diferentes dependendo dos sinais dos operandos), então implementá-lo em hardware é muito caro. Outro problema é a existência de dois 0 (um negativo e um positivo). O complemento 2s é um pouco mais difícil de entender, mas fornece uma aritmética uniforme muito simples, você só precisa adicionar números da mesma maneira, seja qual for o sinal dos números (por exemplo). Portanto, implementá-lo leva a um hardware mais barato / menor. Respondeu 18 de janeiro às 11: 59Twos Complemento Thomas Finley, abril de 2000 Conteúdo e Introdução Twos complemento não é um esquema complicado e não é bem servido por nada longitudinalmente. Portanto, após essa introdução, o que explica o que são dois complementos e como usá-lo, existem principalmente exemplos. Twos complemento é a forma como todos os computadores que conheço escolhem representar números inteiros. Para obter a notação negativa do complemento dois de um número inteiro, você escreve o número em binário. Você então inverte os dígitos e adiciona um ao resultado. Suponhamos que estivessem trabalhando com quantidades de 8 bits (por motivos de simplicidade) e suponhamos que queremos descobrir como -28 seria expresso em notação de complemento duplo. Primeiro escrevemos 28 em forma binária. Então, invertimos os dígitos. 0 torna-se 1, 1 torna-se 0. É assim que alguém escreveria -28 em binário de 8 bits. Conversão de Twos Complemento Use o número 0xFFFFFFFF como exemplo. Em binário, isto é: o que podemos dizer sobre esse número. Seu primeiro bit (mais à esquerda) é 1, o que significa que isso representa um número negativo. Isso é exatamente como as coisas estão em dois complementos: um líder 1 significa que o número é negativo, um líder 0 significa que o número é 0 ou positivo. Para ver o que esse número é negativo, invertimos o sinal desse número. Mas como fazer isso. As notas da classe dizem (em 3.17) que, para reverter o sinal, você simplesmente inverte os bits (0 vai para 1 e 1 para 0) e adicione um ao número resultante. A inversão desse número binário é, obviamente: depois adicionamos um. Portanto, o negativo de 0xFFFFFFFF é 0x00000001, mais comumente conhecido como 1. Então 0xFFFFFFFF é -1. Conversão para Twos Complemento Observe que isso funciona de ambas as maneiras. Se você tiver -30, e quer representá-lo no complemento 2s, você tira a representação binária de 30: Inverta os dígitos. Convertido de volta para hex, isso é 0xFFFFFFE2. E de fato, suponha que você tenha esse código: isso deve render uma saída de -30. Experimente se você quiser. Aritmética com Twos Complemento Uma das boas propriedades do complemento de dois é que a adição e a subtração são feitas muito simples. Com um sistema como dois complementos, os circuitos para adição e subtração podem ser unificados, enquanto que caso contrário, eles teriam que ser tratados como operações separadas. Nos exemplos desta seção, eu acrescento e subtração em dois complementos, mas você notará que toda vez que faço operações reais com números binários, estou sempre adicionando. Suponha que queremos adicionar dois números 69 e 12 juntos. Se estivéssemos usando decimal, vemos que a soma é de 81. Mas, então, usamos o binário, já que isso é o que o computador usa. Isso resulta em 12 - 69 - 57, o que está correto. Por que Inversion and Adding One Works Inverte e adicione um. Inverta e adicione um. Isso funciona, e você pode querer saber por quê. Se você não se importa, ignore isso, pois não é essencial. Isso é apenas destinado a curiosos sobre o porquê dessa técnica bastante estranha realmente faz sentido matemático. Inverter e adicionar um pode soar como uma coisa estúpida para fazer, mas na verdade é apenas um atalho matemático de uma computação bastante direta. Empréstimos e Subtração Lembre-se do antigo truque que aprendemos na primeira série de empréstimos de futuros lugares de dezenas para realizar uma subtração. Você não pode, então eu vou passar por cima. Por exemplo, eu faço 93702 menos 58358. Agora, então, qual a resposta a essa computação. Bem, comece pelo dígito menos significativo e subtrai um termo por termo. Não podemos subtrair 8 a partir de 2, muito bem emprestar um dígito do próximo lugar mais significativo (o lugar de dezenas) para torná-lo 12 menos 8. 12 menos 8 é 4 e notamos um 1 dígito acima da coluna de dezenas para significar que nós Deve lembrar de subtrair por um na próxima iteração. Esta próxima iteração é 0 menos 5 e menos 1, ou 0 menos 6. Mais uma vez, não podemos fazer 0 menos 6, então nós emprestamos da próxima figura mais significativa uma vez mais para fazer isso 10 menos 6, o que é 4. O próximo A iteração é 7 menos 3 e menos 1, ou 7 menos 4. Isto é 3. Não precisamos emprestar esta vez. Esta próxima iteração é 3 menos 8. Mais uma vez, devemos emprestar para fazer 13 menos 8, ou 5. Esta próxima iteração é 9 menos 5 e menos 1 ou 9 menos 6. Isso é 3. Não precisamos emprestar isso Tempo. Então, 93702 menos 58358 é 35344. Empréstimo e sua Relevância para o Negativo de um Número Quando você quer encontrar o negativo de um número, você tira o número e o subtrai de zero. Agora, suponha que fosse realmente estúpido, como um computador, e em vez de simplesmente escrever um sinal negativo na frente de um número A, quando subitemos A de 0, nós passamos as etapas de subtrair A de 0. Tome o seguinte cálculo idiota de 0 menos 3:
Comments
Post a Comment