Что больше, 10^10 или long long?

158
03 июля 2018, 13:30

Возможно ли число 1010 засунуть в long long или не влезет?

Answer 1

Влезет, с огромным запасом.

Вот, почитайте: http://en.cppreference.com/w/cpp/language/types

В long long гарантированно влезают числа от -9,223,372,036,854,775,807 до 9,223,372,036,854,775,807 (т.е. ±(264-1-1) )

На абсолютном большинстве систем нижняя граница на один ниже: -9,223,372,036,854,775,808.

Компилятору разрешается иметь long long еще большего размера, но в жизни я такого не видел.

Answer 2

У типа long long нет заранее фиксированного диапазона, однако спецификация языка требует, чтобы он был не уже чем [-(263 - 1), 263 - 1]. Поэтому значение 1010 в него влезет.

Answer 3

Размер long long - 8 байт. 8 байт = 264 бит. 1010 = 10000000000. Значение переменной типа long long может быть -263 <= x < 263. Число 263 очевидно больше, чем число 10000000000, следовательно, переменной типа long long можно присвоить значение 1010. Ответ: да.

Answer 4

Тип long long хранит 64 битные целые числа. Поскольку старший бит используется для обозначения знака, то остаются 63 бита. Т.е. в тип long long можно записать любое число из диапазона [−263 + 1 … 263 − 1]

Очевидно, что число 1010 больше нуля. Попробуем сравнить его с 263

1010 < 1610 = (24)10 = 240 < 263

Answer 5

в любых случаях для встроенных типов просто проверьте или утвердите:

assert(numeric_limits<long long>::max() > x);
assert(numeric_limits<long long>::min() < x);
if (numeric_limits<long long>::max() > x ||  numeric_limits<long long>::min() < x))
cout << "ok";
READ ALSO
Функция sort и алгоритмы сортировки [закрыт]

Функция sort и алгоритмы сортировки [закрыт]

Скорее всего, все наслышаны про различные алгоритмы сортировокТакже, в C++ есть встроенная библиотека <algorithm>, в которой есть функция sort

202
Jni интерфейсы java

Jni интерфейсы java

Из сторонней библиотеки необходимо вызывать методы в C++

201
Заполнение матрицы

Заполнение матрицы

У нас есть матрица а*bНужно заполнить её нулями с помощью встроеной функции

177