Na computação , um todo é um tipo de dados que representa um subconjunto finito de números inteiros . Também usamos o termo tipo de dados inteiros ( dados do tipo integral ). Um tipo de dado é a natureza dos valores que um dado pode assumir.
Algum processamento, como o Censo dos Estados Unidos, foi feito pela primeira vez usando representação decimal usando cartões perfurados. O sistema decimal usa dez dígitos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) e onde sua posição corresponde a uma potência de 10 (1, 10, 100, 1000, etc.).
O desenvolvimento da ciência da computação levou ao uso da representação binária de inteiros, mas também da representação decimal, onde cada dígito de 0 a 9 é codificado em binário (ver Decimal codificado em binário , IBM 1620 ). Em outras palavras, representamos cada um dos dez dígitos em binário (em 4 bits) para implementar a aritmética decimal.
Um computador moderno usa voltagens elétricas para gerenciar seus dados. Em teoria, várias tensões podem ser usadas para representar informações , mas na prática apenas dois são usados. De fato, problemas de distorção apareceriam e impediriam que a informação fosse mantida. Além disso, os avanços tecnológicos tendem a reduzir a tensão para evitar o aquecimento dos materiais . Portanto, usamos dois níveis de tensão, um bit então assume 2 valores que correspondem a 0 e 1.
A representação de números, portanto, envolve uma representação binária (usando os dígitos 0 e 1). É possível usar o sistema binário , um número posicional que usa apenas dois dígitos (0 e 1) e onde cada bit corresponde a uma potência de 2 (1, 2, 4, 8, 16, 32, 64, etc.) . Esta é a representação usada para todas as máquinas dos processadores modernos.
Os tipos de dados inteiros comuns em linguagens de programação usam a representação binária. Podem ser de tamanho limitado (número de bits): se for n bits, permite representar
Em ambos os casos a aritmética utilizada é (na maioria das vezes) aritmética módulo 2 n , ou seja, do ponto de vista da aritmética usual, é exata desde que as operações não ultrapassem o intervalo considerado. Em processadores atuais, é particularmente eficaz quando o tamanho do tipo de dados corresponde ao das palavras gerenciadas nativamente pelo processador, pelo design do mesmo.
Linguagens de programação podem possivelmente lidar com inteiros de tamanho arbitrário , não há limite além do limite físico vinculado à máquina usada, a aritmética é exata: o espaço de memória alocado para a representação de um inteiro n 'não é constante, e pode aumentar dependendo das necessidades do cálculo.
Bits | Sobrenome | Intervalo (assumindo o complemento de dois para o sinalizado) | Número de dígitos decimais | Usos | |
---|---|---|---|---|---|
4 | mordidela , semibito ou quarteto | Assinado: de -8 a 7 ou de a | 1 | Decimal codificado em binário , representação de dígito kamal decimal único. | |
Sem sinal: de 0 a 15 também | 2 | ||||
8 | byte , byte | Assinado: de -128 a 127 ou de a | 3 | Caracteres ASCII , C / C ++ char, C / C ++ uint8_t, int8_t, C # byte, sbyte, T-SQL tinyint, Delphi Byte, Shortint, Java byte | |
Sem sinal: de 0 a 255 ou | 3 | ||||
16 | halfword, palavra , curta | Assinado: de -32 768 a 32 767 ou de a | 5 | UCS-2 caracteres , abreviatura em C / C ++, C / C ++ int (mínimo), C / C ++ uint16_t, int16_t, C # short, ushort, Delphi Word, Smallint, T-SQL smallint, Java char / baixo | |
Sem sinal: de 0 a 65.535 ou | 5 | ||||
32 | I4, palavra, longa , palavra dupla, palavra longa, int | Assinado: De -2 147 483 648 a 2 147 483 647 ou de a | 10 | caracteres UCS-4 , Truecolor com alfa, C / C ++ int (com alguns compiladores, 32 e 64 bits), C / C ++ longo (no Windows e DOS de 32 bits e Unix), C / C ++ uint32_t , int32_t, C # int, uint, FourCC , Delphi Cardinal, Integer, LongWord, LongInt, T-SQL int, Java int | |
Sem sinal: de 0 a 4 294 967 295 ou | 10 | ||||
64 | I8, palavra dupla, palavra longa, palavra longa longa, quad, palavra quádrupla, int64 | Assinado: De -9 223 372 036 854 775 808 a 9 223 372 036 854 775 807, ou de a | 19 | C / C ++ long, C / C ++ long long, C / C ++ uint64_t, int64_t, C # long, ulong, Delphi Int64, T-SQL bigint, Java long | |
Sem sinal: de 0 a 18 446 744 073 709 551 615 ou | 20 | ||||
128 | octaword, double quadword | Assinado: De -170 141 183 460 469 231 731 687 303 715 884 105 728 a 170 141 183 460 469 231 731 687 303 715 884 105 727, ou de a | 39 | Disponível em C por meio de alguns compiladores, não padrão. Disponível em Fortran como padrão (por exemplo, gnu, intel). | |
Sem sinal: De 0 a 340 282 366 920 938 463 463 463 374 607 431 768 211 455 ou | 39 | ||||
não |
número inteiro de n bits (caso geral) |
Assinado: De para | Ada range -2**(n-1)..2**(n-1)-1 | ||
Sem sinal: de 0 a | Ada range 0..2**n-1, Adamod 2**n | ||||
? | bignum | inteiro de precisão arbitrária | infinito | Todos os usos, com algumas perdas de desempenho. Linguagens: Python, Perl, Haskell, Ruby ... |