"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > É garantido que `long` tenha pelo menos 32 bits em C++?

É garantido que `long` tenha pelo menos 32 bits em C++?

Publicado em 2024-11-07
Navegar:523

Is `long` Guaranteed to Have at Least 32 Bits in C  ?

É garantido que o longo terá 32 bits?

Apesar das suposições comuns baseadas no padrão C, surge a questão se o longo tem garantia de ter pelo menos 32 bits. O padrão classifica os tipos integrais fundamentais como:

sizeof(char) ≤ sizeof(short int) ≤ sizeof(int) ≤ sizeof(long int)

No entanto, muitos assumem que com base nisso hierarquia, long deve ter 32 bits. No entanto, o padrão afirma explicitamente que o número de bits em um byte é definido pela implementação. Steinbach afirmou que long tem garantia de 32 bits. Ele baseou esta afirmação no limite implícito no intervalo de valores que um longo pode conter (LONG_MIN a LONG_MAX).

O Padrão C faz referência ao Padrão C (18.3.2), que define:LONG_MIN ≤ -2^31 1 LONG_MAX ≥ 2^31 - 1

Conexão com representação de 32 bits

LONG_MIN ≤ -2^31   1
LONG_MAX ≥ 2^31 - 1

Representação de complemento de dois:

Se números negativos são representados em complemento de dois, armazenar LONG_MIN ou LONG_MAX requer 32 bits.

  1. Bit de sinal explícito:Se um bit de sinal for usado para números negativos, o armazenamento total ainda requer 32 bits.
  2. Conclusão
  3. Embora o padrão C não exija explicitamente que long tenha 32 bits, o requisito de intervalo mínimo (LONG_MIN a LONG_MAX) implicitamente exige isso. Isso ocorre porque a representação desses valores requer 32 bits de armazenamento ou um mecanismo específico de implementação com capacidade de valor equivalente. Portanto, pode-se concluir que C garante que long tenha pelo menos 32 bits.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3