Representando números em um computador. Representação de números em um computador Para números positivos, os códigos direto, inverso e complementar são a mesma coisa, ou seja,

16.03.2022

Na tecnologia da computação, os números reais (em oposição aos inteiros) são números que possuem uma parte fracionária.

Ao escrevê-los Em vez de uma vírgula, costuma-se escrever um ponto final. Assim, por exemplo, o número 5 é um número inteiro e os números 5,1 e 5,0 são reais.

Para a conveniência de exibir números que assumem valores de uma faixa bastante ampla (ou seja, muito pequenos e muito grandes), a forma de escrever números com ordem básica do sistema numérico. Por exemplo, o número decimal 1,25 pode ser representado nesta forma da seguinte forma:

1.25*10 0 = 0.125*10 1 = 0.0125*10 2 = ... ,
ou assim:
12.5*10 -1 = 125.0*10 -2 = 1250.0*10 -3 = ... .

Se o ponto flutuante estiver localizado na mantissa antes do primeiro algarismo significativo, então com um número fixo de dígitos alocados para a mantissa, é garantido o registro do número máximo de dígitos significativos do número, ou seja, a precisão máxima da representação do número na máquina. Disto segue:

Esta é a representação mais vantajosa para um computador. números reais chamado normalizado.

A mantissa e a ordem de um número q-ário são geralmente escritas no sistema com a base q, e a própria base é escrita no sistema decimal.

Exemplos de representação normalizada:

Sistema decimal Sistema binário

753,15 = 0,75315*10 3 ; -101,01 = -0,10101*2 11 (ordem 11 2 = 3 10)

0,000034 = -0,34*10 -4 ; -0,000011 = 0,11*2 -100 (ordem -100 2 = -410)

Os números reais são escritos de forma diferente em diferentes tipos de computadores. Nesse caso, o computador geralmente dá ao programador a oportunidade de escolher entre vários formatos numéricos o mais adequado para uma determinada tarefa - usando quatro, seis, oito ou dez bytes.

Como exemplo, aqui estão as características dos formatos de números reais usados ​​pelos computadores pessoais compatíveis com IBM:

Formatos de números reais Tamanho em bytes Faixa aproximada de valores absolutos Número de dígitos decimais significativos
Solteiro 4 10 -45 ... 10 38 7 ou 8
Real 6 10 -39 ... 10 38 11 ou 12
Dobro 8 10 -324 ... 10 308 15 ou 16
Avançado 10 10 -4932 ... 10 4932 19 ou 20

A partir desta tabela fica claro que a forma de representação dos números de ponto flutuante permite escrever números com alta precisão e de uma gama muito ampla.

Ao armazenar números de ponto flutuante, eles são alocados dígitos para mantissa, expoente, sinal numérico e sinal expoente:

Vamos mostrar com exemplos como alguns números são escritos de forma normalizada em formato de quatro bytes com sete bits para registrar a ordem.

1. Número 6,25 10 = 110,01 2 = 0,11001

  • 2 11:

2. Número -0,125 10 = -0,0012 = -0,1*2 -10 (a ordem negativa é escrita em complemento de dois):

Assunto: Representando números em um computador. Formato de ponto fixo e flutuante. Código direto, reverso e complementar.

Repetição: Convertendo inteiros em sistema binário notação:

13 10 = UM 2 Da mesma maneira:

13 10 =1101 2

1345 10 =10101000001 2


Representação de inteiros em um computador.

Todas as informações processadas pelos computadores são armazenadas em formato binário. Como é feito esse armazenamento?

As informações inseridas no computador e geradas durante sua operação são armazenadas em sua memória. A memória do computador pode ser considerada como página longa, consistindo em linhas separadas. Cada uma dessas linhas é chamada célula de memória .

Célula – esta é uma parte da memória do computador que contém informações disponíveis para processamento equipe separada processador. A célula de memória endereçável mínima é chamada de byte - 8 dígitos binários. O número de sequência de um byte é chamado endereço .

célula (8 bits = 1 byte)

palavra máquina.

Uma célula de memória consiste em um certo número de elementos homogêneos. Cada elemento é capaz de estar em um de dois estados e serve para representar um dos dígitos de um número. É por isso que cada elemento da célula é chamado descarga . A numeração dos dígitos em uma célula geralmente é feita da direita para a esquerda, o dígito mais à direita possui um número de série 0. Este é o dígito de ordem inferior da célula de memória, o dígito mais significativo possui um número de série (n-1) em uma célula de memória de n bits.

O conteúdo de qualquer bit pode ser 0 ou 1.

O conteúdo de uma célula de memória é chamado palavra máquina. A célula de memória é dividida em dígitos, cada um dos quais armazena um dígito de um número.

Por exemplo, os computadores pessoais mais modernos são de 64 bits, ou seja, uma palavra de máquina e, portanto, uma célula de memória consiste em 64 bits ou pedaços.

Pedaço - a unidade mínima de medida da informação. Cada bit pode ser 0 ou 1. Bater também chamado descarga células de memória do computador.

O tamanho padrão da menor célula de memória é de oito bits, ou seja, oito dígitos binários. Um conjunto de 8 bits é a unidade básica de representação de dados – um byte.

Byte (do inglês byte - sílaba) - parte de uma palavra de máquina, composta por 8 bits, processada em um computador como um todo. Na tela há uma célula de memória composta por 8 bits - isto é um byte. O dígito menos significativo tem um número de série 0, o dígito mais significativo tem um número de série 7.

8 bits = 1 byte

Dois formatos são usados ​​para representar números na memória do computador: formato de ponto fixo E formato de ponto flutuante . Representado em formato de ponto fixo apenas números inteiros , em formato de ponto flutuante – números reais (fracionários).

Na grande maioria dos problemas resolvidos com a ajuda de um computador, muitas ações são reduzidas a operações com números inteiros. Isto inclui problemas de natureza económica, em que os dados são o número de ações, empregados, peças, veículos etc. Os números inteiros são usados ​​para indicar datas e horas e para numerar vários objetos: elementos de array, entradas de banco de dados, endereços de máquinas, etc.

Os inteiros podem ser representados em um computador como assinados ou não assinados (positivos ou negativos).

Inteiros não assinados geralmenteocupar um ou dois bytes na memóriae aceite valores de 00000000 em formato de byte único 2 até 11111111 2 , e no formato de byte duplo - de 00000000 00000000 2 para 11111111 11111111 2 .

Inteiros assinados geralmente ocupam um, dois ou quatro bytes na memória do computador, sendo que o bit mais à esquerda (mais significativo) contém informações sobre o sinal do número. O sinal de mais é codificado como zero e o sinal de menos como um.

1101 2 10101000001 2

O dígito atribuído ao sinal

(neste caso +)

Os bits mais significativos que faltam em todo o byte são preenchidos com zeros.

Na tecnologia de informática, são utilizadas três formas de gravação (codificação) de inteiros assinados:direto código , voltar código , adicional código .

Código direto é uma representação de um número no sistema numérico binário, com o primeiro dígito atribuído ao sinal do número. Se o número for positivo, o primeiro dígito será 0; se o número for negativo, o primeiro dígito será um;

Na verdade, o código direto é usado quase exclusivamente para números positivos.Para escrever um código numérico direto, você precisa:

    Representar um número em binário

    Complete o registro numérico com zeros até o penúltimo dígito mais significativo de uma célula de 8 ou 16 bits

    Preencha o dígito mais significativo com zero ou um dependendo do sinal do número.

Exemplo: número 3 10 em código direto o formato de byte único será apresentado como:


hislo -3 10 em código direto de formato de byte único, parece:


Código de retorno pois um número positivo no sistema numérico binário coincide com o código direto. Para um número negativo, todos os dígitos do número são substituídos pelos seus opostos (1 por 0, 0 por 1)invertido, e um é inserido no dígito do sinal.

Para números negativos, é utilizado o chamado código complemento. Isso se deve à conveniência de realizar operações em números com tecnologia de informática.

Código adicional usado principalmente para representar números negativos em um computador. Este código faz operações aritméticas mais conveniente para sua implementação pela tecnologia computacional.

No código complementar, assim como no código direto, o primeiro dígito é alocado para representar o sinal do número. Os códigos diretos e complementares para números positivos são iguais. Como o código direto é usado quase exclusivamente para representar números positivos, e o código complementar é usado para números negativos, então quase sempre, se houver 1 no primeiro dígito, então estamos lidando com um código complementar. (Zero denota um número positivo e um denota um número negativo).

Algoritmo para obtenção do código complementar de um número negativo:

1. Encontre o código direto do número (converta o número para o sistema numérico binário, um número sem sinal)

2. Obtenha um código de retorno. Mude cada zero para um e cada um para zero (inverta o número)

3. Adicione 1 ao código reverso

Exemplo: Vamos encontrar o código adicional do número decimal - 47 no formato de 16 bits.

    Vamos encontrar a representação binária do número 47 (código direto).

2. Inverta este número (código reverso). 3. Adicione 1 ao código reverso e registre esse número na RAM.

Importante!

Para números positivos, os códigos direto, inverso e complementar são a mesma coisa, ou seja, código direto. Não há necessidade de inverter números positivos para representá-los em um computador!

Por que é usado?código adicional para representar um número negativo?

Isso torna mais fácil realizar operações matemáticas. Por exemplo, temos dois números representados em código direto. Um número é positivo, o outro é negativo e esses números precisam ser somados. No entanto, você não pode simplesmente dobrá-los. Primeiro, o computador precisa descobrir quais são os números. Tendo descoberto que um número é negativo, ele deveria substituir a operação de adição pela operação de subtração. Então, a máquina deve determinar qual número é maior em valor absoluto para saber o sinal do resultado e decidir o que subtrair de quê. O resultado é um algoritmo complexo. É muito mais fácil somar números se os números negativos forem convertidos em complemento de dois.

Tarefa prática:

Tarefa 1. Escreva os códigos direto, reverso e complementar dos seguintes números decimais usando8 bitscélula:

64 10, - 120 10

Tarefa 2. Escreva os códigos direto, reverso e complementar dos seguintes números decimais em uma grade de 16 bits

57 10 - 117 10 - 200 10

Os dados numéricos são processados ​​em um computador usando o sistema numérico binário. Os números são armazenados na memória do computador em código binário, ou seja, como uma sequência de zeros e uns, e podem ser representados em formato de ponto fixo ou flutuante.

Os inteiros são armazenados na memória em formato de ponto fixo. Com este formato de representação de números, um registro de memória composto por oito células de memória (8 bits) é alocado para armazenar números inteiros não negativos. Cada dígito de uma célula de memória corresponde sempre ao mesmo dígito do número, e a vírgula está localizada à direita após o dígito menos significativo e fora da grade de dígitos. Por exemplo, o número 110011012 seria armazenado em um registrador de memória da seguinte forma:

Tabela 4

O valor máximo de um número inteiro não negativo que pode ser armazenado em um registrador em formato de ponto fixo pode ser determinado a partir da fórmula: 2n – 1, onde n é o número de dígitos do número. O número máximo será igual a 28 - 1 = 25510 = 111111112 e o mínimo 010 = 000000002. Assim, o intervalo de alterações em números inteiros não negativos será de 0 a 25510.

Ao contrário do sistema decimal, o sistema numérico binário na representação computacional de um número binário não possui símbolos que indiquem o sinal do número: positivo (+) ou negativo (-), portanto, para representar inteiros com sinal no sistema binário, dois formatos de representação numérica são usados: formato de valor numérico assinado e formato de complemento de dois. No primeiro caso, dois registradores de memória (16 bits) são alocados para armazenar inteiros assinados, e o dígito mais significativo (mais à esquerda) é usado como sinal do número: se o número for positivo, então 0 é escrito no bit de sinal , se o número for negativo, então 1. Por exemplo, o número 53610 = 00000010000110002 será representado nos registradores de memória da seguinte forma:

Tabela 5

e um número negativo -53610 = 10000010000110002 na forma:

Tabela 6

O número positivo máximo ou número negativo mínimo no formato de valor de número com sinal (levando em consideração a representação de um dígito por sinal) é 2n-1 – 1 = 216-1 – 1 = 215 – 1 = 3276710 = 1111111111111112 e o intervalo de números será de -3276710 a 32767.

Na maioria das vezes, para representar inteiros assinados no sistema binário, é utilizado o formato de código de complemento de dois, que permite substituir a operação aritmética de subtração em um computador por uma operação de adição, o que simplifica significativamente a estrutura do microprocessador e aumenta seu desempenho .

Para representar inteiros negativos neste formato, é usado o código de complemento de dois, que é o módulo do complemento de um número negativo a zero. A conversão de um número inteiro negativo em complemento de dois é realizada por meio das seguintes operações:


1) escreva o módulo do número em código direto em n (n = 16) dígitos binários;

2) obter o código reverso do número (inverter todos os dígitos do número, ou seja, substituir todos os uns por zeros e zeros por uns);

3) adicione um ao dígito menos significativo ao código reverso resultante.

Por exemplo, para o número -53610 neste formato, o módulo será 00000010000110002, o código recíproco será 1111110111100111 e o código adicional será 1111110111101000.

Deve-se lembrar que o complemento de um número positivo é o próprio número.

Para armazenar inteiros assinados diferentes da representação do computador de 16 bits quando usado dois registradores de memória(este formato de número também é chamado de formato inteiro com sinal curto), são usados ​​os formatos inteiros com sinal médio e longo. Para representar números no formato de número médio, são usados ​​quatro registros (4 x 8 = 32 bits), e para representar números no formato de número longo, são usados ​​oito registros (8 x 8 = 64 bits). Os intervalos de valores para os formatos de números médios e longos serão respectivamente: -(231 – 1) ... + 231 – 1 e -(263-1) ... + 263 – 1.

A representação computacional de números em formato de ponto fixo tem suas vantagens e desvantagens. PARA benefícios incluem a simplicidade de representação de números e algoritmos para implementação de operações aritméticas. As desvantagens são a gama finita de representação de números, que pode ser insuficiente para resolver muitos problemas de natureza prática (matemática, econômica, física, etc.).

Os números reais (decimais finitos e infinitos) são processados ​​e armazenados em um computador em formato de ponto flutuante. Com este formato de representação numérica, a posição do ponto decimal na entrada pode mudar. Qualquer número real K em formato de ponto flutuante pode ser representado como:

onde A é a mantissa do número; h – base do sistema numérico; p – ordem numérica.

A expressão (2.7) para o sistema numérico decimal terá a forma:

para binário -

para octal -

para hexadecimal -

Esta forma de representação numérica também é chamada normal . Ao mudar a ordem, a vírgula do número muda, ou seja, parece flutuar para a esquerda ou para a direita. Portanto, a forma normal de representar números é chamada forma de ponto flutuante. O número decimal 15,5, por exemplo, em formato de ponto flutuante pode ser representado como: 0,155 102; 1,55 101; 15,5 100; 155,0 10-1; 1550,0 10-2 etc. Esta forma de ponto flutuante decimal 15,5 não é usada ao escrever programas de computador e inseri-los no computador (os dispositivos de entrada do computador percebem apenas a gravação linear de dados). Com base nisso, a expressão (2.7) para representar números decimais e inseri-los no computador é convertida para a forma

onde P é a ordem do número,

ou seja, em vez da base do sistema numérico 10, escrevem a letra E, em vez de vírgula, um ponto, e o sinal de multiplicação não é colocado. Assim, o número 15,5 em ponto flutuante e formato linear (representação computacional) será escrito como: 0,155E2; 1,55E1; 15,5E0; 155,0E-1; 1550.0E-2, etc.

Independentemente do sistema numérico, qualquer número na forma de ponto flutuante pode ser representado por um número infinito de números. Esta forma de gravação é chamada não normalizado . Para uma representação inequívoca de números de ponto flutuante, é usada uma forma normalizada de escrever um número, na qual a mantissa do número deve atender à condição

onde |A| - o valor absoluto da mantissa do número.

A condição (2.9) significa que a mantissa deve ser uma fração própria e ter um dígito diferente de zero após a vírgula, ou, em outras palavras, se a mantissa não tiver zero após a vírgula, então o número é chamado normalizado . Portanto, o número 15,5 na forma normalizada (mantissa normalizada) na forma de ponto flutuante ficará assim: 0,155 102, ou seja, a mantissa normalizada será A = 0,155 e ordem P = 2, ou na representação computacional do número 0,155E2 .

Os números de ponto flutuante têm formato fixo e ocupam quatro (32 bits) ou oito bytes (64 bits) da memória do computador. Se um número ocupa 32 bits na memória do computador, então é um número de precisão regular; se tiver 64 bits, então é um número de precisão dupla; Ao escrever um número de ponto flutuante, são alocados bits para armazenar o sinal da mantissa, sinal do expoente, mantissa e expoente. O número de dígitos alocados para a ordem do número determina a faixa de variação dos números, e o número de dígitos alocados para armazenar a mantissa determina a precisão com que o número é especificado.

Ao realizar operações aritméticas (adição e subtração) em números apresentados em formato de ponto flutuante, o seguinte procedimento (algoritmo) é implementado:

1) a ordem dos números nos quais as operações aritméticas são realizadas é alinhada (a ordem do número menor em valor absoluto aumenta para a ordem do número maior em valor absoluto, a mantissa diminui no mesmo número de vezes);

2) as operações aritméticas são realizadas nas mantissas dos números;

3) o resultado obtido é normalizado.

Parte prática

Objetivo do serviço. A calculadora online foi projetada para representar números reais em formato de ponto flutuante.

Regras para inserir números

  1. Os números no sistema numérico decimal podem ser inseridos sem parte fracionária ou com parte fracionária (234234.455).
  2. Os números no sistema numérico binário consistem apenas nos dígitos 0 e 1 (10100.01).
  3. Os números no sistema numérico hexadecimal consistem nos dígitos 0...9 e nas letras A...F.
  4. Você também pode obter a representação reversa do código (de sistema hexadecimal cálculo decimal, 40B00000)
Exemplo nº 1. Represente o número 133,54 em forma de ponto flutuante.
Solução. Vamos representar o número 133,54 na forma exponencial normalizada:
1,3354*10 2 = 1,3354*exp 10 2
O número 1,3354*exp 10 2 consiste em duas partes: a mantissa M=1,3354 e o expoente exp 10 =2
Se a mantissa estiver no intervalo 1 ≤ M Representando um número na forma exponencial desnormalizada.
Se a mantissa estiver no intervalo 0,1 ≤ M Vamos representar o número na forma exponencial desnormalizada: 0,13354*exp 10 3

Exemplo nº 2. Representa o número binário 101.10 2 em formato normalizado, escrito no padrão IEEE754 de 32 bits.
Solução.
Representação de um número binário de ponto flutuante na forma normalizada exponencial.
Vamos deslocar o número 2 dígitos para a direita. Como resultado, obtivemos os principais componentes de um número binário normalizado exponencial:
Mantissa M = 1,011
Expoente exp 2 =2
Converter número binário normalizado para formato IEEE 754 de 32 bits.
O primeiro bit é alocado para indicar o sinal do número. Como o número é positivo, o primeiro bit é 0
Os próximos 8 bits (2º ao 9º) são reservados para o expoente.
Para determinar o sinal do expoente, de modo a não introduzir outro bit de sinal, adicione um deslocamento ao expoente de meio byte +127. Então nosso expoente é: 2 + 127 = 129
Vamos converter o expoente em representação binária.
Os 23 bits restantes são reservados para a mantissa. Em uma mantissa binária normalizada, o primeiro bit é sempre igual a 1, pois o número está no intervalo 1 ≤ M. Para converter a parte inteira, é necessário multiplicar o dígito do número pela potência do dígito correspondente.
01100000000000000000000 = 2 22 *0 + 2 21 *1 + 2 20 *1 + 2 19 *0 + 2 18 *0 + 2 17 *0 + 2 16 *0 + 2 15 *0 + 2 14 *0 + 2 13 *0 + 2 12 *0 + 2 11 *0 + 2 10 *0 + 2 9 *0 + 2 8 *0 + 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *0 + 2 1 *0 + 2 0 *0 = 0 + 2097152 + 1048576 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 = 3145728
Em código decimal, a mantissa é expressa como 3145728
Como resultado, o número 101.10 representado no IEEE 754 com precisão simples é igual a.
Vamos converter para representação hexadecimal.
Vamos dividir código fonte em grupos de 4 categorias.
2 = 0100 0000 1011 0000 0000 0000 0000 0000 2
Obtemos o número:
0100 0000 1011 0000 0000 0000 0000 0000 2 = 40B00000 16

Qualquer pessoa que já pensou em se tornar um “especialista em TI” ou administrador do sistema, e simplesmente vincular o destino de alguém ao conhecimento de como os números são representados é absolutamente necessário. Afinal, é nisso que se baseiam as linguagens de programação. nível baixo, como Assembler. Portanto, hoje veremos a representação dos números em um computador e sua colocação nas células de memória.

Notação

Se você está lendo este artigo, provavelmente já sabe disso, mas vale a pena repetir. Todos os dados em computador pessoal armazenado em binário Isso significa que qualquer número deve ser representado na forma apropriada, ou seja, composto por zeros e uns.

Para converter os números decimais que conhecemos em um formato compreensível para um computador, você precisa usar o algoritmo descrito abaixo. Existem também calculadoras especializadas.

Portanto, para converter um número para o sistema numérico binário, precisamos pegar o valor que escolhemos e dividi-lo por 2. Depois disso, obteremos o resultado e o resto (0 ou 1). Dividimos o resultado novamente por 2 e lembramos o resto. Este procedimento precisamos repetir até que o resultado final também seja 0 ou 1. Em seguida, anotamos o valor final e os restos na ordem inversa em que os recebemos.

É exatamente assim que os números são representados em um computador. Qualquer número é escrito na forma binária e ocupa uma célula da memória.

Memória

Como você já deve saber, a menor unidade de informação é 1 bit. Como já descobrimos, os números são representados num computador em formato binário. Assim, cada bit de memória será ocupado por um valor – 1 ou 0.

As células são usadas para armazenamento. Cada uma dessas unidades contém até 8 bits de informação. Portanto, podemos concluir que o valor mínimo em cada segmento de memória pode ser 1 byte ou ser um número binário de oito dígitos.

Todo

Finalmente, chegamos à colocação direta dos dados no computador. Como já mencionado, o processador primeiro converte as informações em formato binário e só depois as coloca na memória.

Começaremos pela opção mais simples, que é a representação de números inteiros em um computador. A memória do PC aloca um número ridiculamente pequeno de células para esse processo – apenas uma. Assim, no máximo um slot pode conter valores de 0 a 11111111. Vamos converter o número máximo na forma de notação que conhecemos.
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 uma célula de memória pode conter um valor de 0 a 255. No entanto, isso se aplica exclusivamente a números inteiros não negativos. Se o computador precisar escrever um valor negativo, tudo funcionará de maneira um pouco diferente.

Números negativos

Agora vamos ver como os números são representados em um computador se forem negativos. Para acomodar um valor menor que zero, são alocadas duas células de memória, ou 16 bits de informação. Nesse caso, 15 fica abaixo do próprio número e o primeiro bit (mais à esquerda) fica abaixo do sinal correspondente.

Se o número for negativo, escreve-se “1”, se for positivo, escreve-se “0”. Para facilitar a lembrança, podemos fazer a seguinte analogia: se houver sinal, colocamos 1, se não houver, então nada (0).

Os restantes 15 bits de informação são atribuídos ao número. Semelhante ao caso anterior, podem acomodar no máximo quinze unidades. É importante notar que o registro de números negativos e positivos difere significativamente entre si.

Para colocar um valor maior ou igual a zero em 2 células de memória, utiliza-se o chamado código direto. Esta operação é realizada da mesma forma descrita, e o máximo A = 32766, se utilizado, gostaria de observar imediatamente que neste caso “0” se refere a positivos.

Exemplos

Representar números inteiros na memória do computador não é uma tarefa tão difícil. Embora fique um pouco mais complicado se estivermos falando de um valor negativo. Para escrever um número menor que zero, é usado o código de complemento de dois.

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

  1. Primeiro, o módulo de um número negativo é escrito em número binário. Ou seja, o computador lembra um valor semelhante, mas positivo.
  2. Cada bit de memória é então invertido. Para fazer isso, todos os uns são substituídos por zeros e vice-versa.
  3. Adicione "1" ao resultado. Este será o código adicional.

Vamos dar um exemplo claro. Tenhamos um número X = - 131. Primeiro obtemos seu módulo |X|= 131. Depois o convertemos para o sistema binário e o escrevemos em 16 células. Obtemos X = 0000000010000011. Após a inversão, X = 1111111101111100. Adicionamos “1” a ele e obtemos o código de retorno X = 1111111101111101. Para gravar em uma célula de memória de 16 bits, o número mínimo é X = - (2 15) = - 32767.

Inteiros longos

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

O processo de gravação não é absolutamente diferente do apresentado acima. Então, daremos apenas o intervalo de números que podem ser armazenados nesse tipo.

X máx =2.147.483.647.

X min = - 2.147.483.648.

Na maioria dos casos, esses valores são suficientes para registrar e realizar operações com dados.

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

ponto flutuante

Esta é a última coisa que você precisa saber sobre a representação de números em um computador. Como ao escrever frações existe o problema de determinar a posição da vírgula decimal nelas, a notação científica é usada para colocar tais dígitos no computador.

Qualquer número pode ser representado da seguinte forma X = m * p n. Onde m é a mantissa do número, p é a base do sistema numérico e n é o expoente do número.

Para padronizar o registro dos números de ponto flutuante, utiliza-se a seguinte condição, segundo a qual o módulo da mantissa deve ser maior ou igual a 1/n e menor que 1.

Receberemos o número 666,66. Vamos colocar isso na forma exponencial. Acontece que X = 0,66666 * 10 3. P = 10 e n = 3.

Os valores de ponto flutuante normalmente recebem 4 ou 8 bytes (32 ou 64 bits). No primeiro caso é chamado de número de precisão regular e, no segundo caso, é chamado de número de precisão dupla.

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

Valor máximo 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 mantissa 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, recebemos um valor aproximado.

Se combinarmos agora os dois cálculos, obteremos um valor que pode ser escrito sem perda em 4 bytes de memória. Será igual a X = 1,701411 * 10 38. Os restantes números foram descartados, pois é precisamente esta precisão que nos permite ter este método registros.

Dupla precisão

Como todos os cálculos foram descritos e explicados no parágrafo anterior, aqui contaremos tudo de forma muito resumida. Para números de precisão dupla, geralmente existem 11 bits para o expoente e seu sinal, bem como 53 bits para a mantissa.

P = 1111111111 2 = 1023 10.

M = 2 52 -1 = 2 (10*5,2) = 1000 5,2 = 10 15,6. Arredondamos e obtemos o número máximo X = 2 1023 com precisão de “m” mais próximo.

Esperamos que as informações que fornecemos sobre a representação de números inteiros e reais em um computador sejam úteis para você em seus estudos e sejam pelo menos um pouco mais claras do que o que normalmente é escrito nos livros didáticos.