484 Shares 2391 views

Representação de números no computador. Representação de números inteiros e números reais na memória do computador

Qualquer um que tenha pensado em se tornar uma "pessoa de TI" ou um administrador de sistema, e simplesmente conectando o destino com a tecnologia do computador, o conhecimento de como a representação dos números na memória do computador é absolutamente necessária. Afinal, esta é a base de linguagens de programação de baixo nível, como Assembler. Portanto, hoje vamos considerar a representação de números no computador e sua colocação em células de memória.

Sistema de numeração

Se você está lendo este artigo, provavelmente, você já sabe sobre isso, mas vale a pena repetir. Todos os dados no computador pessoal são armazenados em um sistema de números binários . Isso significa que qualquer número deve ser apresentado de forma apropriada, isto é, consistindo em zeros e outros.

Para traduzir os números decimais usuais para um tipo, um computador compreensível, você precisa usar o algoritmo descrito abaixo. Há também calculadoras especializadas.

Então, para traduzir um número em um sistema de números binários, você precisa tomar o valor escolhido por nós e dividi-lo em 2. Depois disso, obtemos o resultado eo restante (0 ou 1). O resultado novamente divide 2 e lembre-se do restante. Este procedimento deve ser repetido até que o resultado seja também 0 ou 1. Em seguida, escreva o valor final e os resíduos na ordem inversa, conforme os recebemos.

É assim que os números estão representados no computador. Qualquer número é escrito em forma binária e, em seguida, ocupa um local de memória.

Memória

Como você já deveria saber, a unidade mínima de informação é de 1 bit. Como já vimos, a representação de números no computador está em formato binário. Assim, cada bit de memória será ocupado por um único valor – 1 ou 0.

Para armazenar grandes números , as células são usadas. Cada unidade contém até 8 bits de informação. Portanto, podemos concluir que o valor mínimo em cada segmento de memória pode ser de 1 byte ou ser um número binário de oito dígitos.

Inteiro

Finalmente, chegamos à colocação direta de dados no computador. Como já foi dito, em primeiro lugar, o processador traduz informações em formato binário, e só então o coloca na memória.

Começaremos com a versão mais simples, que é a representação de números inteiros no computador. A memória do PC aloca este processo para um número de células ridiculamente pequeno – apenas um. Assim, o máximo em um slot pode ser de 0 a 11111111. Vamos traduzir o número máximo na forma usual do registro.
X = 1 × 2 7 + 1 × 2 6 + 1 × 2 5 + 1 × 2 4 + 1 × 2 3 + 1 × 2 2 + 1 × 2 1 + 1 × 2 0 = 1 × 2 8 – 1 = 255 .

Agora vemos que em uma célula de memória pode ser localizado um valor de 0 a 255. No entanto, isso se aplica apenas a números inteiros não negativos. Se o computador precisar anotar um valor negativo, tudo irá um pouco diferente.

Números negativos

Agora vamos ver como os números são representados no computador, se eles são negativos. Para colocar um valor inferior a zero, duas células de memória ou 16 bits de informação são alocados. Neste caso, 15 vai sob o próprio número, e o primeiro bit (extremo esquerdo) é dado sob o sinal correspondente.

Se o dígito for negativo, então "1" é escrito, se positivo, então "0". Por simplicidade de lembrar, podemos desenhar uma analogia: se houver um sinal, então configure 1, se não for, então nada (0).

Os 15 bits restantes de informação são atribuídos a um número. Semelhante ao caso anterior, eles podem colocar um máximo de quinze unidades. Deve notar-se que a gravação de números negativos e positivos é significativamente diferente um do outro.

Para colocar um valor nas 2 células de memória maiores que zero ou iguais a ele, o chamado código direto é usado. Esta operação é realizada da mesma maneira que foi descrita, e o máximo A = 32766, se usarmos o sistema de números decimais. Só quero notar que, neste caso, "0" refere-se ao positivo.

Exemplos

Representar números inteiros na memória do computador não é uma tarefa tão difícil. Embora seja um pouco mais complicado, se é um significado negativo. Para escrever um número inferior a zero, um código adicional é usado.

Para obtê-lo, a máquina executa uma série de operações auxiliares.

  1. Primeiro, o módulo de um número negativo está escrito em notação binária. Ou seja, o computador lembra um valor similar, mas positivo.
  2. Em seguida, cada bit de memória é invertido. Para fazer isso, todas as unidades são substituídas por zeros e vice-versa.
  3. Adicione "1" ao resultado. Este será um código adicional.

Aqui é um exemplo ilustrativo. Suponhamos que tenhamos o número X = -131. Primeiro, obtemos seu módulo | X | = 131. Então, o traduzimos em um sistema binário e o escrevemos em 16 células. Recebemos X = 0000000010000011. Após a inversão, X = 1111111101111100. Adicione-lhe "1" e obtenha o código inverso X = 1111111101111101. Para escrever para uma localização de memória de 16 bits, o número mínimo é X = – (2 15 ) = – 32767.

Inteiros longos

Como você pode ver, a representação de números reais em um computador não é tão difícil. No entanto, esse intervalo pode não ser suficiente para a maioria das operações. Portanto, para acomodar grandes números, o computador aloca das células da memória 4 ou 32 bits.

O processo de gravação não é diferente do apresentado acima. Então, damos o intervalo de números que podem ser armazenados em um determinado tipo.

X max = 2 147 483 647.

X min = – 2 147 483 648.

Esses valores na maioria dos casos são suficientes para registrar e executar operações com dados.

A representação de números reais em um computador tem suas vantagens e desvantagens. Por um lado, esta técnica facilita a realização de operações entre valores inteiros, o que acelera significativamente o processador. Por outro lado, esse intervalo não é suficiente para resolver a maioria dos problemas de economia, física, aritmética e outras ciências. Portanto, agora vamos considerar outra técnica para superuniversos.

Ponto flutuante

Esta é a última coisa que você precisa saber sobre a representação de números em um computador. Uma vez que ao gravar fracções existe um problema de determinar a posição da vírgula nelas, uma forma exponencial é usada para colocar esses dígitos no computador.

Qualquer número pode ser representado da seguinte forma: X = m * p n . Onde m é a mantisa de um número, p é a base do sistema numérico e n é a ordem do número.

Para padronizar a gravação de números de ponto flutuante, é utilizada a seguinte condição, segundo a qual o módulo de mantisa deve ser maior ou igual a 1 / n e inferior a 1.

Suponhamos que recebemos um número de 666.66. Vamos trazê-lo para uma forma exponencial. Acontece que X = 0.666666 * 10 3 . P = 10 e n = 3.

Os valores de ponto flutuante geralmente são armazenados em 4 ou 8 bytes (32 ou 64 bits). No primeiro caso, isso é chamado de número de precisão comum e, no segundo caso, é chamado de dupla precisão.

Dos 4 bytes alocados para o armazenamento de dígitos, 1 (8 bits) é dado para dados sobre a ordem e seu sinal e 3 bytes (24 bits) são alocados para armazenar a mantisa e seu sinal de acordo com os mesmos princípios que para valores inteiros. Sabendo disso, podemos fazer cálculos simples.

O valor máximo de n = 1111111 2 = 127 10 . Com base nisso, podemos obter o tamanho máximo de um número que pode ser armazenado na memória do computador. X = 2 127 . Agora, podemos calcular a mantisa máxima possível. Será igual a 2 23 – 1 ≥ 2 23 = 2 (10 × 2,3) ≥ 1000 2,3 = 10 (3 × 2,3) ≥ 10 7 . Como resultado, obtivemos um valor aproximado.

Se agora combinarmos os dois cálculos, obtemos um valor que pode ser escrito sem perda de 4 bytes de memória. Será igual a X = 1.701411 * 10 38 . Os dígitos restantes foram descartados, pois é essa precisão que permite esse método de gravação.

Dupla precisão

Como todos os cálculos foram descritos e explicados no parágrafo anterior, aqui vamos contar tudo muito brevemente. Para números com dupla precisão, geralmente 11 bits são alocados para a ordem e seu sinal, bem como 53 bits para a mantisa.

П = 1111111111 2 = 1023 10 .

M = 2 52 -1 = 2 (10 * 5.2) = 1000 5,2 = 10 15,6 . Nós arredondamos para o lado maior e conseguimos o número máximo X = 2 1023 para dentro de "m".

Esperamos que a informação sobre a representação de números inteiros e números reais no computador que fornecemos seja útil para você no treinamento e será pelo menos um pouco mais compreensível do que o que normalmente é escrito nos livros didáticos.