13. Arquitetura de Computadores: Complemento a Dois

Sdílet
Vložit
  • čas přidán 28. 08. 2024
  • Neste vídeo, é apresentado como representar números positivos e negativos em binário e como realizar operações de subtração somando utilizando complemento a dois.
    A página da disciplina com lista de exercícios e material de apoio pode ser acessada em tinyurl.com/y5...
    Nesta série de videos, uso uma abordagem focada em hardware e eletrônica para computação. Inicialmente é abordado a parte básica dos sistemas numéricos e bases binárias, octal e hexadecimal, operações aritméticas e conversões entre bases. A partir daí entramos na parte básica da eletrônica, onde vemos os princípios das portas lógicas, circuitos digitais e multiplexadores. Depois avançamos na construção da Unidade Lógico-Aritmética (ULA) de 1 bit a de vários bits. O ciclo da instrução é montado criando um processador RISC hipotético com capacidade para execução de instruções em linguagem de máquina levando em consideração o conceito de pipeline. Vemos também a hierarquia da memória e como montar memórias RAM a partir de flip-flops.
    Enjoy it!
    By @prof.pantoja
    turing.pro.br/...

Komentáře • 93

  • @playjhonez6533
    @playjhonez6533 Před 4 lety +21

    Uma aula de 15 minutos aprendi mais que metade de 1 semestre kkk Boa Aula e Grande Professor

  • @alexandreoliveira9193
    @alexandreoliveira9193 Před 2 lety +6

    Maratonando sua playlist de arquitetura 🤗

  • @BHSWGP
    @BHSWGP Před rokem +5

    o que esse cara explica bem nao ta escrito, vem pra minha faculdade kkkkkk, aula boa dms pantoja

    • @ProfessorPantoja
      @ProfessorPantoja  Před rokem

      Valeu Higor.... fala ae, estuda aonde?

    • @BHSWGP
      @BHSWGP Před rokem +1

      @@ProfessorPantoja Unimontes, te espero aqui

    • @ProfessorPantoja
      @ProfessorPantoja  Před rokem

      Eu tinha uma viagem marcada para Montes Claros, mas acho que cancelaram. Um dia desses broto aí.

  • @1rrv1
    @1rrv1 Před 5 lety +6

    Parabéns pela aula, Pantoja!! Me lembrou de quando tive aula contigo no primeiro ano, mt bom 😁

  • @rennatto9945
    @rennatto9945 Před rokem +3

    Desculpa professor, agora que eu vi o vídeo novamente eu consegui entender,

  • @UllyanneFreire
    @UllyanneFreire Před 4 lety +3

    conteúdo de ótima qualidade, parabéns e obrigado

  • @gillianrocha9373
    @gillianrocha9373 Před 3 lety +1

    Obrigado pela aula!

  • @wagnermh1202
    @wagnermh1202 Před 2 lety +4

    Boa noite Professor Carlos, tudo bom? O overflow seria o "estouro de pilha" que a gente "vê" em alguns erros de programas? Nem sei se isso ainda existe. Na minha época tinha e era muito comum porque as memórias eram muito caras e eram pequenas, então as CPUs tinham que rebolar pra conseguir resolver todas as instruções 😂 . Tem alguma coisa a ver ou não tem nada a ver? ou é só a forma mesmo que o computador "enxerga" para resolver?

    • @ProfessorPantoja
      @ProfessorPantoja  Před 2 lety +1

      Se não me engano, o estouro de pilha era por um outro motivo. Mas tinha um erro de overflow bem parecido, onde a tela ficava azul. O pessoal da antiga tinha muito disso!

  • @miguelvieira857
    @miguelvieira857 Před 3 lety +5

    Professor, nesse caso o zero a esquerda é válido? Eu sempre escutei que o zero a esquerda não valia de nada quando colocado antes da vírgula, e agora ele se tornou importante para evidenciar se um número é positivo ou negativo... Estou confuso....

    • @ProfessorPantoja
      @ProfessorPantoja  Před 3 lety +9

      Como o bit de sinal é uma convenção, um bit que assumimos como uma representação de positivo ou negativo, então mesmo que tenhamos algum zero a esquerda, o sinal deve ser levado em conta. Por exemplo em decimal +026 ainda é +26; -0031 ainda é -31. Como não podemos representar em binário e com portas lógicas os sinais + e -, usamos um número pra isso, e como a arquitetura tem uma quantidade definida de bits (32, 64, etc.), você terá números com zero a esquerda e o último bit, o mais significativo é o de sinal. Mas excluindo o bit de sinal, até em binário, zero a esquerda não vale nada.

  • @UniversoIncomum
    @UniversoIncomum Před 11 měsíci +1

    Não estou entendendo essa aula de complemento a dois :/

    • @ProfessorPantoja
      @ProfessorPantoja  Před 11 měsíci

      Complemento a dois é difícil no início mesmo. Qualquer dúvida, manda que tento ajudar.

  • @AugustoM23
    @AugustoM23 Před 11 dny

    Onde pega o gabarito das listas?

  • @lucasviana951
    @lucasviana951 Před 2 lety

    Incrível sua aula !!!

  • @yumaidkawaii
    @yumaidkawaii Před 10 měsíci +2

    qndo o (110) será -2 e quando (110) sera 6? ou (111) = -1 e (111) = 7

    • @ProfessorPantoja
      @ProfessorPantoja  Před 10 měsíci +2

      Isso vai ser definido pelo formato a ser usado. Se estiver informado que é complemento a 2 ou usar o IEEE 754, o primeiro bit é o de sinal. Em questões de exercícios, precisa estar informado de alguma forma a existência ou não do bit de sinal.

  • @alexspdr999
    @alexspdr999 Před 4 lety +3

    Professor, me desculpa. Essa aula bagunçou minhas idéias. Durante todo tempo eu entendi que o binário (1100) era o valor 12 no decimal. Mas nesta aula, você está me dizendo que (1100) é -4. Como vou saber diferenciar esses dois binários?Outra coisa, Não entendi o motivo de o complemento de dois nos cálculos de subtração. por exemplo, se numa prova tiver pedindo para somar ou subtrair dois binários, como vou saber se apenas calculo ou se além do calculo, faço o procedimento de complemento?Se na prova não pedir complemento eu faço o cálculo normal?Obrigado pela ajuda.

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety +1

      A diferença é que complento a 2 serve pra representar (e fazer operações com) números negativos. Então o bit mais valioso, o primeiro da esquerda, representa o sinal (0 para positivo e 1 para negativo). Na forma tradicional, não temos como subtrair um número negativo de um número positivo, ou de um número menor diminuir de um número maior. Então para isso, existe o complemento a dois. Com ele é possível subtrair realizando uma soma. Em uma prova, se não há menção a bit de sinal nem a complemento a 2, use os cálculos da forma comum. Se falar algo assim, fique atento que talvez possa ser necessário usar completamento a 2. Sobre o 12, 1100 é 12 sem bit de sinal. O 1100, o 1 indica que é negativo e o resto (100) indica o número em si.

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety

      Espero ter desbagunçado as coisas por aí. Rs

    • @alexspdr999
      @alexspdr999 Před 4 lety

      @@ProfessorPantoja Está ajudando muito! Estava fazendo curso online mas nesta parte eu estava descontente com o material e encontrei na sua aula o conteúdo que consegui entender perfeitamente. (Me enrolei nesta parte do complemento de 2, mas vou praticar alguns exercícios para pegar o jeito)

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety

      @@alexspdr999 ok. Qualquer dúvida posta que vou tentando ajudar. Se tiver mais alguém que você conheça estudando, pode indicar o canal que ajuda, mas só se quiser, é claro. Abs e boa sorte.

  • @Cesarsg.1
    @Cesarsg.1 Před 4 lety +2

    Professor, então só usaremos o complemento a dois quando for considerado o bit de sinal??

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety +2

      Sim. Pra usar o c2, temos que considerar a existência do bit de sinal sempre.

  • @jenni4821
    @jenni4821 Před 28 dny

    Primeira vez que vi o vídeo não entendi nada kkkkk, tive que assistir mais duas vezes para entender. Obrigada, professor. Sua didática é boa, só é a matéria que não ajuda muito.

  • @wagnerserafim9629
    @wagnerserafim9629 Před 2 lety +1

    Professor, excelente aula!
    Estou com uma dúvida correlação a quando usar complemento a 2. No exemplo de -1 - (-2) o senhor diz para usar o complemente pois se fizesse a conta normalmente o resultado não seria o esperado, mas, por curiosidade, resolvi fazer do modo padrão
    111
    -110
    001 (+1)
    O resultado é o mesmo, não?
    Testando com outras contas percebi que, se o sinal for o mesmo (números positivos subtraindo números positivos ou negativos subtraindo negativos) o resultado não muda independente de fazer a conta utilizando complemento a 2 ou do modo padrão. Entretanto, ao fazer subtração com números de sinais diferentes, o resultado só é certo quando utilizado complemente a 2. Só quero confirmar se estou certo ou deixei algum detalhe escapar. Obrigado desde já!

    • @ProfessorPantoja
      @ProfessorPantoja  Před 2 lety +1

      Sim, dependendo dos números que esteja utilizando e dos sinais, pode ser que você tenha problemas no resultado. Perceba que nesse exemplo que você mostrou, os números já estão em complemento a 2. Pegar o número 1 e simplesmente adicionar o bit de sinal, poderia dar um problema. Esse é um ponto.
      Mas quando os números estão representados corretamente, esse problema não acontece. Por isso o positivo com positivo não tem problemas nem o negativo com o negativo também.
      Mas usar a subtração normal com sinais diferentes, você acaba não considerando o sinal, então acontece isso.
      A pergunta certa não é quando usar o complemento a 2 e sim onde ele é usado. Como o processador (a unidade lógico aritmética) só realiza soma, então só nos resta usar o C2.
      Se estivermos representando números negativos e fazendo operações com eles, também é recomendado.
      Ajudei?

    • @wagnerserafim9629
      @wagnerserafim9629 Před 2 lety +1

      @@ProfessorPantoja ajudou sim professor! Obrigado pela atenção e disponibilidade

    • @wagnerserafim9629
      @wagnerserafim9629 Před 2 lety +1

      @@ProfessorPantoja entendendo onde ele é usado e o porquê fica bem mais fácil de se entender o C2, obrigado

  • @caio5098
    @caio5098 Před 4 lety +1

    então resumidamente o c2 eh só inverter os números e somar 1?

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety

      Tecnicamente sim. Esse é o processo. Mas o C2 serve para representar números negativos. Lembre-se que uma coisa é pegar um número em binário com bit de sinal e aplicar o processo do c2. A outra é realizar as operações de subtração realizando uma soma com o segundo número em representação de c2.

  • @leandro_fmoraes
    @leandro_fmoraes Před 2 lety +1

    Deixa eu ver se entendi. Um número negativo é o inverso de uma unidade abaixo dele?
    o -5 é o inverso do +4,
    o -4 é o inverso do +3,
    o -3 é o inverso do +2....

    • @ProfessorPantoja
      @ProfessorPantoja  Před 2 lety +1

      Se pegarmos o caso do -1 com 4 dígitos onde o mais significativo é o bit de sinal: 0|001 ficaria 1|111. Se você pegar o próprio +4: 0|100 ficaria 1|100. O +3: 0|011 ficaria 1|101. Então, se fizermos a conversão direta nesse último caso, o +3 equivale ao -5. Tente fazer com mais dígitos e veja o comportamento. Pegue um número de 6 bits por exemplo.

    • @leandro_fmoraes
      @leandro_fmoraes Před 2 lety +1

      @@ProfessorPantoja Obrigado professor, vou tentar aqui.

    • @ProfessorPantoja
      @ProfessorPantoja  Před 2 lety

      @@leandro_fmoraes beleza. Depois me fala o que achou!

  • @wagnermh1202
    @wagnermh1202 Před rokem +1

    Professor Carlos, boa noite! Tudo bom? Na operação 01100 + 11001, o primeiro seria +12 e o segundo -3 e o resultado dá 9, sem a necessidade de inverter a segunda entrada. Por que a soma é diferente e não precisa da inversão de sinal? 01100 + 11001 = [1]|00101.
    O "range" é sempre a quantidade de casa de bits -1? Tipo ali em cima: 5 bits = 2^5 = 32, então iria de +16 a -15?

    • @ProfessorPantoja
      @ProfessorPantoja  Před rokem +1

      Depende se você está adotando o número em magnitude ou o complemento a dois. Como nesse caso é o complemento a 2, você sempre realiza a soma (porque se diminui somando) quando é uma operação de subtração nomeadamente. Quando você soma, não há a necessidade de inverter. Nesse seu exemplo, o primeiro número é o +12, mas o segundo (11001) é o -7, se você somar 01100 + 11001 = [1]00101 = +5. O -3 é 11101. Se fizermos 01100 + 11101 = [1]01001 ou +9.

    • @ProfessorPantoja
      @ProfessorPantoja  Před rokem +1

      Sim. O range sempre elimina o bit de sinal. Ele não entra por representar exatamente os positivos e negativos dentro do range restante.

    • @ProfessorPantoja
      @ProfessorPantoja  Před rokem +1

      Não precisamos inverter (ou colocar em complemento a 2) porque somar um número positivo com um número negativo, o segundo número já está automaticamente em complemento a 2. Todo número positivo somado a um negativo, implica em uma subtração (+ com - é -). Então como o segundo já é invertido naturalmente, basta somar!

    • @wagnermh1202
      @wagnermh1202 Před rokem +1

      @@ProfessorPantoja blz prof? Vlw pela atenção! Muito obrigado mesmo!
      Peguei esse de um exercício de complemento a dois com soma, aí o prof explicou no vídeo que o 01001 é -3 e não -7. Como eu descubro essa diferença? Eu fiz a soma errado ali também, né?
      E o range é de -15 pra +16 ou -16 pra +15? Fiquei na dúvida porque no exemplo de 3 bits seu foi de -4 a +3.

    • @ProfessorPantoja
      @ProfessorPantoja  Před rokem +1

      @@wagnermh1202 de nada. Sempre que precisar, é só falar.

  • @fabiomanoelmoraisdesouza1863

    Professor parabéns pelas aulas, eu tô com dúvidas nessa soma, porque a soma de 1+1+1+ deu 1 subiu 1.

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety

      Vamos pensar em decimal primeiro: 1 + 1 + 1 = 3, e 3 em Binário é 11. Nessa situação, fica 1 e vai 1. Ajudou?

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety

      Podemos pensar em binário partindo de que a soma da 11. Como 11 (3) é acima do valor da base 10 (2), você pode diminuir 3-2 que dará 1 (o valor que fica). A quantidade de vezes que você diminuiu a base, que aqui foi 1 é o valor que sobe (vai um).

    • @fabiomanoelmoraisdesouza1863
      @fabiomanoelmoraisdesouza1863 Před 4 lety +2

      @@ProfessorPantoja Deu para entender, esse assunto não é difícil, mas têm muitos detalhes, Estou Cursando Análise de Sistemas, e tem esse assunto em organização de computadores.

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety

      @@fabiomanoelmoraisdesouza1863 precisando, estamos por aqui. ;)

  • @kalinag1255
    @kalinag1255 Před 5 lety +1

    Presente

  • @o_cadre399
    @o_cadre399 Před 4 lety +1

    Fala professor tudo bem o senhor tem gabarito das listas ? Se puder me enviar o gabarito da lista de complemento a dois ficaria agradecido

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety

      Eu não faço os gabaritos para forçarem vocês da turma a se comunicarem e trocarem informações. Assim, vocês podem se ajudar. Sempre que você tiver uma dúvida em alguma questão, em tempos normais, sem o mocoronga vírus, eu corrijo em sala de aula ou no horário de atendimento alguns exercícios que vocês pedirem. Nesse tempo de exceção, ou posta aqui, ou posta na página da disciplina (ou nos dois), ou me manda e-mail.

    • @o_cadre399
      @o_cadre399 Před 4 lety

      Professor estou-lhe perguntando isso, pois eu estou com uma pequena dificuldade em c2 mas estou conseguindo fazer os exercícios eu queria um gabarito só pra conferir se as respostas estão certas mesmo

    • @o_cadre399
      @o_cadre399 Před 4 lety +1

      Eu entendo seu ponto de vista e concordo, pois se o senhor lançasse as listas com gabarito muitos não iriam fazer apenas iam colar

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety

      hahaha... chegamos a um ponto comum! Isso é verdade!

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety

      Basta você me falar os exercícios que você teve dúvida. Me manda um e-mail com as duvidas que teve e a resolução. Você poderia inclusive escanear (o Tiny Scanner é uma ótima opção gratuita). Em tempos normais, você me mostraria pessoalmente.

  • @reginaldosantos4119
    @reginaldosantos4119 Před 4 lety +1

    Bom dia professor, quando houver uma situação assim (-45)-(-54) como devo fazer

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety

      Primeiro coloca o -45 em complemento a 2. Depois coloca o -54 em complemento a 2. Depois diminui somando aplicando a regra do complemento a 2 seguindo os 3 passos: repete o primeiro, inverte o segundo e soma mais 1. Atenção na hora de converter os números para complemento a 2 para não esquecer de considerar o bit de sinal. Lembre-se que menos com menos é mais. Ajudou?

    • @reginaldosantos4119
      @reginaldosantos4119 Před 4 lety

      Professor Pantoja valeu professor

    • @reginaldosantos4119
      @reginaldosantos4119 Před 4 lety +1

      Professor Pantoja você pode me explicar o terceiro exercício da sua lista de c2
      aqui vai ele
      :utilizando números de 8 bits, converta os seguintes números para o c2 realize a operação e,então, converta o resultado para decimal.identifique a ocorrência (ou não) de overflow
      I) 4510+2010

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety

      @@reginaldosantos4119 a primeira coisa que precisa ver é o número máximo que você consegue representar com 8 bits e tirando um bit de sinal. Nesse caso seria 127. Então, já vai dar overflow porque você tem números maiores que isso. Para que não dê overflow, você precisa usar um número de 13 bits mais o bit de sinal. Aí você pode converter tranquilamente e somar. Pode responder assim, com essas soluções.

    • @reginaldosantos4119
      @reginaldosantos4119 Před 4 lety +1

      Professor Pantoja então daria overflow

  • @henriquelessa2963
    @henriquelessa2963 Před 4 lety

    Professor muito boa a sua aula. Eu gostaria de pedir um esclarecimento sobre o exemplo que você usou. O (+)4, que para ser descrito com bit de sinal precisa de 4 dígitos, deveria ser representado de que maneira em um sistema/número de 3 bits? Estaria errado descrever com dois "Bytes de 3 dígitos" ficando 001 100/000 100 para -4 e +4, respectivamente?

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety +1

      4 é equivalente a 100. Só nisso já temos 3 bits. Para representar o sinal, precisamos de mais um bit o 0 para representar o positivo: 0100. Para representar +4 é preciso 4 bits. Com 3 bits e um desses sendo o bit de sinal, só conseguimos chegar no 011, com o zero sendo o + e 11 valendo 3, ou seja só chegaremos ao +3.

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety +1

      Ajudou?

    • @henriquelessa2963
      @henriquelessa2963 Před 4 lety +1

      @@ProfessorPantoja. Eu estava até meio que sem muita esperança de receber uma resposta tão rápida. Então, pelo que eu entendi, esse número simplesmente não poderia ser representado com sinal em 3 bits. É que estudando, eu me deparei com o termo "Excesso" para se referir a essa situação e junto da instrução:
      -Considere número de m bits.
      -Some 2^m-1 ao número original.
      Que foi o que me bagunçou a razão rsrs

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety +1

      @@henriquelessa2963 geralmente eu respondo rápido. Estando perto de um PC ou do celular. O Excesso que geralmente calculamos pra definir números reais. Usamos no padrão IEEE754. Da uma olhada no vídeo sobre esse padrão e veja se é isso. Mas mesmo assim, usando o excesso como no IEEE754, eu precisaria usar mais bits. Ou não considerar meu bit de sinal como parte do número de tamanho m. Tem algum lugar de onde você tirou essa informação? Queria dar uma olhada.

    • @ProfessorPantoja
      @ProfessorPantoja  Před 4 lety +1

      @@henriquelessa2963 mas, dado tudo que você me passou de informação, não vejo como representar +100 com 3 bits mais o sinal.

  • @vibra4932
    @vibra4932 Před rokem +1

    Meu celular tá com o fone queimado ou o vídeo é baixo mesmo ?

    • @ProfessorPantoja
      @ProfessorPantoja  Před rokem +1

      O vídeo é baixo mesmo. Não sabia configurar na época. Mas os demais vídeos estão bem melhores! 😉

    • @vibra4932
      @vibra4932 Před rokem

      @@ProfessorPantoja ótima
      aula professor. me ajudou muito !!!! obrigado .