3
respostas

[Dúvida] Dúvida arquitetura de computadores

No curso de arquitetura de computadores na aula de número inteiros,o professor mencionou que o computador utiliza geralmente 8 bits para representar um um número inteiro.

Sendo um bit de sinal, se você pegar o número natural 5 e converter para binário é 101, qual a logica de ele utilizar 8 bits quanto somente 3 é necessário???

outro ponto por padrão para representar números negativo é usado complemento 2, que nao foi apresentado.

3 respostas

Opa, Saulo! Como vai?

Sua pergunta é muito interessante e demonstra que você está realmente tentando entender os conceitos apresentados no curso.

O uso de 8 bits para representar números inteiros é uma convenção que surgiu com o desenvolvimento dos primeiros microprocessadores. O uso de 8 bits (ou um byte) é uma escolha prática que permite representar um intervalo de 256 valores diferentes (0 a 255 para números sem sinal ou -128 a 127 para números com sinal). Isso é suficiente para muitas aplicações, e o uso de um número fixo de bits facilita o design do hardware do computador.

Agora, sobre o número 5. Você está correto que 5 pode ser representado como 101 em binário. No entanto, em um computador que usa 8 bits para representar números inteiros, o número 5 seria representado como 00000101. Os zeros restantes da esquerda são chamados de "zeros à esquerda" e são usados para preencher os bits que não estão sendo usados.

Quanto ao uso do complemento a 2 para representar números negativos, isso é uma convenção que permite que a aritmética funcione corretamente com números negativos. Por exemplo, se você tem o número -5 representado como complemento a 2, você pode adicioná-lo ao número 7 (representado como 00000111 em binário) e obterá o número 2 (representado como 00000010 em binário), que é o resultado correto.

Aqui está um exemplo prático de como o complemento a 2 funciona:

  1. Pegue o número 5 (00000101 em binário).
  2. Inverta todos os bits (11111010).
  3. Adicione 1 ao resultado (11111011).

O resultado é a representação em complemento a 2 do número -5. Se você adicionar esse número ao número 7 (00000111), você obtém:

 00000111
+ 11111011
___________
100000010

O bit extra à esquerda é descartado, deixando você com 00000010, que é o número 2.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Certo, entendi!

Outras dúvidas.

1 - caso eu mande uma expressão que contenha números e caracteres juntos, como a máquina faz a distinção do que é número e caracteres visto que um número representa um caracter da tabela ASCII, e como as teclas do teclado se comportando em relação a isso....

2 - Em relação ao ponto flutuante, como as máquinas representam numeros com casas decimais.

Opa, Saulo!

1 - Quando você envia uma expressão que contém números e caracteres juntos, a máquina geralmente utiliza um processo chamado de análise léxica para fazer a distinção entre números e caracteres. Durante essa análise, o programa ou sistema irá percorrer os caracteres da expressão e agrupá-los em tokens significativos, como números, operadores, palavras-chave, etc.

No caso de números, o sistema reconhecerá sequências de dígitos consecutivos e as interpretará como números. Por exemplo, se você enviar a expressão "123abc", o sistema reconhecerá "123" como um número. Caracteres não numéricos como "abc" são tratados de maneira diferente, são geralmente interpretados como identificadores, strings ou símbolos, dependendo do contexto da linguagem de programação ou aplicação.

As teclas do teclado também desempenham um papel importante nessa distinção. Quando você pressiona uma tecla, o hardware do teclado envia um código para o sistema operacional, indicando qual tecla foi pressionada. O sistema operacional então interpreta esses códigos e os converte em caracteres ou ações apropriadas, dependendo do contexto.

2 - Os números com casas decimais são representados em máquinas utilizando o formato de ponto flutuante. No geral, o padrão mais comum para representação de números de ponto flutuante é o IEEE 754. Nesse formato, um número de ponto flutuante é representado por três componentes principais:

  • Sinal: Indica se o número é positivo ou negativo.
  • Expoente: Define a escala do número, especificando quantas posições à esquerda ou à direita o ponto decimal deve ser movido.
  • Mantissa: Também chamada de fração, é a parte significativa do número, que contém os dígitos que representam a precisão do número.

Esses componentes permitem representar uma ampla gama de números reais, incluindo aqueles com casas decimais. O formato de ponto flutuante permite que os computadores realizem cálculos com números decimais de forma eficiente, embora existam algumas limitações de precisão devido à representação finita dos números em binário.

Espero ter esclarecido as suas dúvidas!

Abraços,