Что больше long long c
Перейти к содержимому

Что больше long long c

  • автор:

Диапазоны типов данных

32-разрядные и 64-разрядные компиляторы Microsoft C++ распознают типы в таблице далее в этой статье.

Если имя начинается с двух символов подчеркивания ( __ ), тип данных является нестандартным.

Диапазоны, представленные в следующей таблице, включают указанные значения.

Тип Имя Байт Другие имена Диапазон значений
int 4 signed От −2 147 483 648 до 2 147 483 647
unsigned int 4 unsigned От 0 до 4 294 967 295
__int8 1 char От -128 до 127
unsigned __int8 1 unsigned char От 0 до 255
__int16 2 short , short int , signed short int От −32 768 до 32 767
unsigned __int16 2 unsigned short , unsigned short int От 0 до 65 535
__int32 4 signed , signed int , int От −2 147 483 648 до 2 147 483 647
unsigned __int32 4 unsigned , unsigned int От 0 до 4 294 967 295
__int64 8 long long , signed long long От −9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
unsigned __int64 8 unsigned long long От 0 до 18 446 744 073 709 551 615
bool 1 нет false или true
char 1 нет -128–127 по умолчанию

В зависимости от характера использования переменная типа __wchar_t обозначает расширенный символьный или многобайтовый символьный тип. Чтобы указать константу расширенного символьного типа, перед символьной или строковой константой следует использовать префикс L .

signed и unsigned — это модификаторы, которые можно использовать с любым целочисленным типом, кроме типа bool . Обратите внимание, что char , signed char и unsigned char — это три разных типа, предназначенных для механизмов, подобных перегрузке и шаблонам.

Размер типов int и unsigned int — 4 байта. Однако переносимый код не должен зависеть от размера int , поскольку языковой стандарт позволяет варьировать его в зависимости от реализации.

C и C++ в Visual Studio также поддерживают целочисленные типы с указанием размера. Дополнительные сведения см. в разделе __int8, __int16, __int32, __int64 и ограничения целых чисел.

Дополнительные сведения об ограничениях размеров каждого типа см. в разделе «Встроенные типы».

Диапазон перечисляемых типов зависит от контекста языка и указанных флажков компилятора. Дополнительные сведения см. в статьях Объявления перечислений C и Объявления перечислений C++.

Что больше long long? я хочу узнать сколько 6 в 100 и написал программу но ответ в хз раз больше long long! помогите!

Для работы с длинными целыми и числами с плавающей запятой произвольной точности существует много библиотек, к примеру, https://ru.wikipedia.org/wiki/GNU_Multi-Precision_Library, некоторые языки программирования поддерживают такие числа «из коробки».

Ну и как было сказано в ответе выше, можно самому реализовать работу с «длинными целыми» — алгоритмы и структуры данных для этого описаны еще при царе горохе.

Aнто)(@Ученик (212) 7 лет назад

ra Высший разум (113233) И че теперь? Обосраться и не жить? Если и дальше будешь задавать вопросы на ответах. мыло. ру, вместо того, чтобы самому порыться в гугле, попытаться разобраться со своим вопросом, то так нубом и останешься.

Пределы целых чисел в C и C++

Ограничения для целочисленных типов в C и C++ представлены в следующей таблице. Эти ограничения заданы в стандартном файле заголовка C . Стандартный файл заголовка C++ содержит , который включает в себя .

В Microsoft C также допускается объявление целочисленных переменных с указанием размера, которые относятся к целочисленным типам с размером 8, 16, 32 или 64 бит. Дополнительные сведения о них см. в статье Целочисленные типы с указанием размера.

Ограничения для целочисленных констант

Константа Значение Значение
CHAR_BIT Количество битов в наименьшей переменной, которая не является битовым полем. 8
SCHAR_MIN Минимальное значение для переменной типа signed char . –128
SCHAR_MAX Максимальное значение для переменной типа signed char . 127
UCHAR_MAX Максимальное значение для переменной типа unsigned char . 255 (0xff)
CHAR_MIN Минимальное значение для переменной типа char . –128 (или 0, если используется параметр /J)
CHAR_MAX Максимальное значение для переменной типа char . –127 (или 255, если используется параметр /J)
MB_LEN_MAX Максимальное число байтов в многобайтовом символе. 5
SHRT_MIN Минимальное значение для переменной типа short . -32768
SHRT_MAX Максимальное значение для переменной типа short . 32767
USHRT_MAX Максимальное значение для переменной типа unsigned short . 65 535 (0xffff)
INT_MIN Минимальное значение для переменной типа int . -2147483647 — 1
INT_MAX Максимальное значение для переменной типа int . 2147483647
UINT_MAX Максимальное значение для переменной типа unsigned int . 4 294 967 295 (0xffffffff)
LONG_MIN Минимальное значение для переменной типа long . -2147483647 — 1
LONG_MAX Максимальное значение для переменной типа long . 2147483647
ULONG_MAX Максимальное значение для переменной типа unsigned long . 4 294 967 295 (0xffffffff)
LLONG_MIN Минимальное значение для переменной типа long long . –9 223 372 036 854 775 807 – 1
LLONG_MAX Максимальное значение для переменной типа long long . 9 223 372 036 854 775 807
ULLONG_MAX Максимальное значение для переменной типа unsigned long long . 18 446 744 073 709 551 615 (0xffffffffffffffff)

Если значение превышает максимально возможное представление целочисленного типа, компилятор Microsoft выдает ошибку.

Завершение блока, относящегося только к системам Майкрософт

Числовые типы данных

До сих пор рассматривались только один тип целочисленных переменных — int . На самом деле существует несколько основных целочисленных типов, тип int — лишь один (но наиболее часто используемый) из них.

Таблица основных целочисленных типов.

Название Размер Знаковый Синонимы
short 2 байта Знаковый short int , signed short , signed short int
unsigned short 2 байта Беззнаковый unsigned short int
int 4 байта Знаковый signed int
unsigned 4 байта Беззнаковый unsigned int
long 4 байта Знаковый long int , signed long , signed long int
unsigned long 4 байта Беззнаковый unsigned long int
long long 8 байт Знаковый long long int , signed long long , signed long long int
unsigned long long 8 байт Беззнаковый unsigned long long int

То есть типы бывают “короткими” ( short ), обычными, длинными ( long ) и очень длинными ( long long ). Последний тип является расширением компилятора GNU C++ и не является стандартным типом для языка C++, поэтому он может отсутствовать в других реализациях языка или называться по-другому (например, в компиляторе Microsoft Visual C++ аналогичный тип называется int64 ). Чем “длиннее” тип, тем большее число различных значений он может принимать, тем больше памяти он занимает. Также типы бывают знаковыми ( signed ), которые могут принимать как положительные, так и отрицательные значения и беззнаковые ( unsigned ), которые принимают только неотрицательные значения.

Таблица значений, которые могут принимать различные типы:

Название Размер Минимальное значение Максимальное значение
short 16 бит -2 15 =- 32768 2 15 -1 = 32767
unsigned short 16 бит 0 2 16 -1 = 65535
int , long 32 бита -2 31 = -2147483648 2 31 -1 = 2147483647
unsigned , unsigned long 32 бита 0 2 32 -1 = 4294967295
long long 64 бита -2 63 = -9223372036854775808 2 63 -1 = 9223372036854775807
unsigned long long 64 бита 0 2 64 -1 = 18446744073709551615

На самом деле в стандарте языка C++ не оговорены конкретные значения размеров типов. Оговорено только то, что одинаковые знаковые и беззнаковые типы имеют одинаковые размеры, и размер меньшего типа всегда не превосходит размера большего типа. Вот какие размеры могут быть у этих типов в зависимости от разрядности процессора компьютера:

Тип 16-битный процессор 32-битный процессор 64-битный процессор
short 2 байта 2 байта 2 байта
int 2 байта 4 байта 4 байта
long 4 байта 4 байта 8 байт
long long 8 байт 8 байт

Действительные типы

Действительные (вещественные) числа представляются в виде чисел с десятичной точкой (а не запятой, как принято при записи десятичный дробей в русский текстах). Для записи очень больших или очень маленьких по модулю чисел используется так называемая запись “с плавающей точкой” (также называемая “научная” запись). В этом случае число представляется в виде некоторой десятичной дроби, называемой мантиссой, умноженной на целочисленную степень десяти (порядок). Например, расстояние от Земли до Солнца равно 1.496·10 11 , а масса молекулы воды 2.99·10 -23 .

Числа с плавающей точкой в программах на языке C++, а также при вводы и выводе записавыются в виде мантиссы, затем пишется буква e , затем пишется порядок. Пробелы внутри этой записи не ставятся. Например, указанные выше константы можно записать в виде 1.496e11 и 2.99e-23 . Перед самим числом также может стоять знак минус.

Для представления в памяти ЭВМ действительных чисел существует три типа:

Тип Точность Размер Количество знаков мантиссы Минимальное положительное значение Максимальное значение
float Одинарная 4 байта 7 1.4e-45 3.4e38
double Двойная 8 байт 15 5.0e-324 1.7e308
long double Расширенная 10 байт 19 1.9e-4951 1.1e4932

Операция деления

Для действительных чисел определены операции сложения, вычитания, умножения и деления.

При этом операция деления выполняется по-разному для переменных и констант целочисленного типа и для переменных и констант действительных типов. В первом случае деление производится нацело с отбрасыванием дробной части, во втором случае — деление производится точно и результатом является действительное число. Более точно, если делимое и делитель одновременно являются целочисленными константами или переменными целочисленных типов, то деление будет целочисленным, а если хотя бы одно из них действительное, то деление будет действительным. Например:

cout 

выведет 3 в первой строке и 3.33333 в остальных строках.

Результат выполнения деления не зависит от того, какой переменной будет присвоен результат. Если написать double a = 10 / 3; , то переменная a будет равна 3, так как деление 10/3 будет целочисленным, независимо от того, чему будет присвоен результат.

Приведение типов

Иногда возникает необходимость привести выражение одного типа к такому же выражению другого типа. Например, если есть две переменные a и b типа int и требуется вычислить их частное (не целочисленное) и записать в переменную d типа double . Следующий код:

double d; d = a / b

будет неверным, т.к. деление a / b будет целочисленным. Правильный код такой:

double d; d = (double)a / b;

В этом примере используется операция приведения типа: (double)a . Эта операция возвращает значение типа double , но равное значению переменной a . В результате деление будет выполняться, как деление вещественных чисел, поскольку будет выполняться деление действительного значения на целочисленное.

Операция приведения типа не меняет тип самой переменной и ее значение, а только возвращает значение другого типа.

Упражнение

Определите, чему будут равны следующие переменные

int a = 13 / 5; int b = 13 % 5; int c = 13.0 / 5; double d = 13 / 5; double e = 13 % 5; double f = 13.0 / 5; double g = 13 / 5 + 2 / 5; double h = 13.0 / 5 + 2.0 / 5; int i = 13.0 / 5 + 2.0 / 5;

Список функций

В стандартную математическую библиотеку языка Си (а, значит, и C++) входит множество специальных математических функций, которые нужно знать и уметь использовать. Для того, чтобы использовать эти функции в своей программе, необходимо подключить заголовочный файл, содержащий описания этих функций, что делается строчкой в начале программы:

#include

Функция от одного аргумента вызывается, например, так: sin(x) . Вместо числа x может быть любое число, переменная или выражение. Функция возращает значение, которое можно вывести на экран, присвоить другой переменной или использовать в выражении:

y = sin(x); cout 

Все перечисленные в таблице функции работают с типом double , этот тип считается основным типом для работы с действительными числами.

A: Целая часть

Дано положительное действительное число X. Выведите его целую часть.

B: Дробная часть

Дано положительное действительное число X. Выведите его дробную часть.

C: Первая цифра после точки

Дано положительное действительное число X. Выведите его первую цифру после десятичной точки. При решении этой задачи нельзя пользоваться условной инструкцией и циклом.

D: Гипотенуза

Даны длины катетов прямоугольного треугольника. Выведите длину его гипотенузы.

E: Площадь треугольника

Даны длины сторон треугольника. Вычислите площадь треугольника.

3 4 5
1 1 1
0.433013

F: Часы - 1

С начала суток прошло \(H\) часов, \(M\) минут, \(S\) секунд (\(0\le H 2 /6

По данному числу n вычислите сумму \(1+\frac+\frac+. +\frac\).

Решая эту задачу не забывайте, что 1/4==0 , 1/9==0 и т.д.

3 
1.36111

Знаете ли вы, что этот ряд сходится к \(\pi^2/6\)?

O: ln 2

По данному числу n вычислите сумму \(1-\frac12+\frac13-\frac14++. +\frac>\).

Операцией возведения в степень пользоваться нельзя. Алгоритм должен иметь сложность O(n). Попробуйте также обойтись без использования инструкции if.

3 
0.833333

Этот ряд сходится к значению ln 2.

P: Геометрическая прогрессия

Забудьте формулу суммы геометрической прогрессии и вычислите сумму \(1+x+x^2+. +x^n\).

Программа получает на вход целое число n и действительное число x. Операцией возведения в степень пользоваться нельзя. Алгоритм должен иметь сложность O(n).

4 0.1 
1.1111

Q: Просто π

По данному числу n вычислите сумму \( 4\left(1-\frac13+\frac15-\frac17+. +\frac\right)\)

Операцией возведения в степень пользоваться нельзя. Алгоритм должен иметь сложность O(n).

2 
3.46667

Этот ряд сходится к числу \(\pi\).

R: Экспонента

По данному целому числу n и действительному числу x вычислите сумму \( 1+\frac+\frac+\frac+. +\frac\)

Операцией возведения в степень пользоваться нельзя. Алгоритм должен иметь сложность O(n).

2 0.1 
1.105
10 0 
1
100 1 
2.718282

Этот ряд сходится к \(e^x\) при росте \(n\).

S: Косинус

По данному целому числу n и действительному числу x вычислите сумму \( 1-\frac+\frac-\frac+. +(-1)^n\frac>\)

Операцией возведения в степень пользоваться нельзя. Алгоритм должен иметь сложность O(n).

2 0.1 
0.995004
10 0 
1
50 3.14159 
-1

Этот ряд сходится к \(\cos x\) при росте \(n\) (углы измеряются в радианах).

T: Сумма с корнями

По данным натуральным числам n и a вычислите сумму \[ \sqrt> > > \]

3 2 
2.13063

U: Схема Горнера

Дан многочлен \(P(x)=a_nx^n+a_x^+. +a_1x+a_0\) и число \(x\). Вычислите значение этого многочлена, воспользовавшись схемой Горнера: \[ P(x)= \left( . \left( \left( \left( a_n x + a_ \right) x + a_ \right) x + a_ \right) . \right) x + a_ \]

Сначала программе подается на вход целое неотрицательное число \(n\le20\), затем действительное число \(x\), затем следует \(n+1\) вещественное число — коэффициенты многочлена от старшего к младшему. Программа должна вывести значение многочлена.

При решении этой задачи нелья использовать массивы и операцию возведения в степень. Программа должна иметь сложность O(n).

1 0
1 1
1
2 0.5
1 1 1
1.75

V*: Система линейных уравнений - 1

Даны числа \(a\), \(b\), \(c\), \(d\), \(e\), \(f\). Известно, что система линейных уравнений \[ \cases \]

имеет ровно одно решение. Выведите два числа \(x\) и \(y\), являющиеся решением этой системы.

1 0 0 1 3 3 
3 3

W*: Первая цифра после точки

Попробуйте еще раз решить следующую задачу.

Дано положительное действительное число X. Выведите его первую цифру после десятичной точки. При решении этой задачи нельзя пользоваться условной инструкцией и циклом.

Если у вас не получается решить эту задачу, прочите примечание в конце листка.

X*: Часы - 3

Вспомните задачу K и попробуйте еще раз решить следующую задачу.

С начала суток часовая стрелка повернулась на угол в \(\alpha\) градусов. Определите сколько полных часов, минут и секунд прошло с начала суток, то есть решите задачу, обратную задаче F. Запишите ответ в три целочисленные переменные и выведите их на экран.

При решении этой задачи нельзя пользоваться условными инструкциями и циклами.

Если у вас не получается решить эту задачу, прочите примечание в конце листка.

31.025
1 2 3

Y**: Система линейных уравнений - 2

Даны числа \(a\), \(b\), \(c\), \(d\), \(e\), \(f\). Решите систему линейных уравнений \[ \cases \]

Вывод программы зависит от вида решения этой системы.

Если система не имеет решений, то программа должна вывести единственное число 0 .

Если система имеет бесконечно много решений, каждое из которых имеет вид \(y=kx+b\), то программа должна вывести число 1 , а затем значения \(k\) и \(b\).

Если система имеет единственное решение \((x_0,y_0)\), то программа должна вывести число 2 , а затем значения \(x_0\) и \(y_0\).

Если система имеет бесконечно много решений вида \(x=x_0\), \(y\) — любое, то программа должна вывести число 3 , а затем значение \(x_0\).

Если система имеет бесконечно много решений вида \(y=y_0\), \(x\) — любое, то программа должна вывести число 4 , а затем значение \(y_0\).

Если любая пара чисел \((x,y)\) является решением, то программа должна вывести число 5 .

Тесты к этой задаче закрытые.

1 0 0 1 3 3 
2 3 3
1 1 2 2 1 2 
1 -1 1
0 2 0 4 1 2 
4 0.5

Z**: Кубическое уравнение

Даны четыре действительных числа: \(A\), \(B\), \(C\), \(D\). Найдите все корни уравнения \(Ax^3+Bx^2+Cx+D=0\).

Известно, что все корни этого уравнения не превосходят по абсолютной величине 1000. Известно, что любые два корня этого уравнения различаются не менее, чем на 10 -6 .

Программа получает на вход четыре действительных числа: \(A\), \(B\), \(C\), \(D\). Любые из этих четырех чисел, но не все одновременно, могут быть равны 0.

Программа должна вывести от 0 до 3 действительных чисел: корни данного уравнения в порядке возрастания. Кратные корни должны быть выведены только один раз. Значения корней необходимо выводить с точностью до 6 знаков после точки.

1 -2 1 0

Тесты к этой задаче закрытые.

Если у вас не получаются задачи.

Если вам не удается решить задачи K, W, X, то посмотрите на следующую программу:

#include using namespace std; int main()

Инструкция cout.precision(20) устанавливает количество значащих цифр при выводе действительных чисел. Откомпилируйте и запустите эту программу, подумайте над результатом ее работы. Подумайте, как это может сказаться на решении заданий K, W, X.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *