Каково точное максимальное значение `long long int` в C ++? - PullRequest
1 голос
/ 05 ноября 2019

Я использую c++ более 3 месяцев, и я не могу определить точное максимальное значение чисел в long long int.

Кто-нибудь знает значение?

Ответы [ 3 ]

5 голосов
/ 05 ноября 2019

Это зависит от системы. Стандарт C ++ только гарантирует, что минимальный размер для long long int будет 64-разрядным . Это также самый распространенный размер.

При 64-битном размере максимальное число, которое может быть представлено, будет 2^63 - 1, что равно 9223372036854775807. Причина такого точного размера в том, что нам нужна половина битовых комбинаций для отрицательных чисел, затем одна для 0, а остальная часть для положительных чисел.

Максимальное значение в конкретной системе также можетпроверяться программно с помощью:

#include <iostream>
#include <limits>

int main() {
    std::cout << std::numeric_limits<long long int>::max();
}

Вывод:

9223372036854775807
3 голосов
/ 05 ноября 2019

long long int не имеет фиксированного максимального значения, указанного языком C ++ - это зависит от платформы.

Используйте std::numeric_limits<long long>::max() (из заголовка <limits>), чтобы получитьего максимальное значение.

1 голос
/ 05 ноября 2019

Гарантия стандарта C ++ для модификатора long long состоит в том, что он будет иметь ширину не менее 64 бит. (см. здесь ).

Точная ширина типа, однако, зависит от конкретной платформы, поэтому вы можете получить более 64 бит для ваших типов.

Чтобы проверить максимальное и минимальное число, которое тип long long int может хранить на вашем компьютере и в реализации, используйте библиотеку <limits> с std::numeric_limits<long long>. Вы можете прочитать больше об этом здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...