Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 176, средняя оценка - 4.83
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
#1

Размер INT - C++

08.04.2010, 16:11. Просмотров 23404. Ответов 23
Метки нет (Все метки)

int a = 99999000000;
cout <<a;
Выводит 12345646 типа такова. без -!


непойму ск макс может инт держать?
sizeof(int) = 4
4 байта = 32 бита
я так понял по дефолту инт всегда unsigned да?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2010, 16:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Размер INT (C++):

Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>) - C++
Написал программу, которая создает вектор 'а' векторов 'b', вектора 'b' содержат 2 числа. Стало интересно, как нужно изменить программу...

Размер int на х64 - C++
Добрый вечер, всегда помнил и читал об этом где-то: размер int равен машинному слову(совокупность регистра ОС, разрядности шины, регистра...

Размер указателя short int - C++
Доброе утро. Возник вопрос почему short int = 8 байт? Он же должен занимать 2 байта в 32-х разрядной среде. #include...

От чего зависит размер char и int - C++
Задача на С. Есть структура: struct myStruct { char a; int b; }; От чего зависит размер int и char? Вроде у int...

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec - C++
Вот есть заголовочный файл // Заголовочный файл Vector.h #ifndef VECTOR_H #define VECTOR_H #include &lt;iostream&gt; using...

Ошибка при сохранении больших чисел в тип int (размер встроенных типов) - C++
В двумерном целочисленном массиве (размер массива: N, M - указываются в ручную) найти указанное значение: - Количество элементов массива...

23
M128K145
Эксперт С++
8306 / 3526 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
08.04.2010, 16:14 #2
Krist_ALL, int в зависимости от разрядности системы меняет свой размер. Он может быть 16, 32 и 64 бита
0
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
08.04.2010, 16:16  [ТС] #3
у меня 32. как вычислить макс и мин число которое может быть в int?
0
M128K145
Эксперт С++
8306 / 3526 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
08.04.2010, 16:19 #4
int(x16) -32 768 до 32 767
int(x32) -2 147 483 648 до 2 147 483 647

unsigned int(x16) 0 до 65 535
unsigned int(x32) 0 до 4 294 967 295
2
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
08.04.2010, 16:30  [ТС] #5
а как ты узнал?
0
M128K145
Эксперт С++
8306 / 3526 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
08.04.2010, 16:38 #6
int(x16) -(2 ^ 15) до 2 ^ 15 - 1
int(x32) -(2 ^ 31) до 2 ^ 31 - 1

unsigned int(x16) 0 до 2 ^ 16 - 1
unsigned int(x32) 0 до 2 ^ 32 - 1

Физический смысл двоичного кода
2
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
08.04.2010, 16:56  [ТС] #7
32 байта = 4 бита
1 бит = BOOL 1 or 0 - 2 значение

2^8 = 256
1 байт числа от 0 до 255 или -127 до 127
16 байт числа от 2^8*16 = 4096 или -2048 +2048
32 байт числ 2^8*32 = 8192
где ошибка?
0
Psixodelik
40 / 39 / 2
Регистрация: 27.11.2009
Сообщений: 100
08.04.2010, 17:11 #8
Ошибка в том, что 32 байта не равно 4 бита, 1 байт = 8 бит, следовательно 32 байта = 256 бит.Возводишь в квадрат. Значит 32 байта = 65536, ну или от -32 768 до 32 767
2
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
08.04.2010, 18:13  [ТС] #9
а что значит реализация?
какже тогда переносить программы на другие окмпы?
если у меня например Int s= 4 294 967 295;?
0
Psixodelik
40 / 39 / 2
Регистрация: 27.11.2009
Сообщений: 100
08.04.2010, 18:18 #10
Цитата Сообщение от Krist_ALL Посмотреть сообщение
а что значит реализация?
какже тогда переносить программы на другие окмпы?
если у меня например Int s= 4 294 967 295;?
Проблем не должно быть...ща системы используют 32 разрядную архитектуру....редко у кого найдёшь 16 разрядную ОС....
0
CheshireCat
Эксперт С++
2897 / 1246 / 78
Регистрация: 27.05.2008
Сообщений: 3,411
08.04.2010, 18:32 #11
Цитата Сообщение от Psixodelik Посмотреть сообщение
Проблем не должно быть...ща системы используют 32 разрядную архитектуру....редко у кого найдёшь 16 разрядную ОС....
Открой для себя мир архитектур, отличных аппаратно и программно от x86/Windows..... :-)
0
Nick Alte
Эксперт С++
1643 / 1015 / 120
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
08.04.2010, 19:05 #12
В любом случае, есть же тип long.
0
odip
Эксперт С++
7160 / 3222 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
09.04.2010, 09:26 #13
В C99 есть типы int32_t, int64_t, которые обозначают 32-битное целое и 64-битное целое.
Правда поддержка C99 в Visual Studio 2005/2008 отсутствует.
0
M128K145
Эксперт С++
8306 / 3526 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
09.04.2010, 09:27 #14
odip, но в MS VS есть свой тип __int64
0
odip
Эксперт С++
7160 / 3222 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
09.04.2010, 09:30 #15
Чтобы узнать предельные значения типов лучше использовать константы.
C
1
2
3
4
#include <limits.h>
 
INT_MIN, INT_MAX
LONG_MIN, LONG_MAX
Добавлено через 1 минуту
Есть.
Поэтому делаю такой код - работает в gcc и в Visual Studio:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/* Task 0320 */
 
#if defined(_MSC_VER)
#define _CRT_SECURE_NO_DEPRECATE
#endif
 
#include <assert.h>
#include <stdio.h>
 
#if defined(__GNUC__)
 
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
 
#elif defined(_MSC_VER)
 
typedef __int64 int64_t;
#define PRId64 "I64d"
#define SCNd64 "I64d"
 
#endif
 
 
/********************************************************************/
#define MAX_N       50
 
 
/********************************************************************/
int64_t calc_variants( int n, int m );
 
 
/********************************************************************/
int main( void ) {
 
int n, m;
int64_t count;
 
 
freopen( "input.txt", "r", stdin );
freopen( "output.txt", "w", stdout );
 
scanf( "%d %d\n", &m, &n );
assert( 2<=m && m<=n && m<=MAX_N );
 
count= calc_variants( n, m );
printf( "%" PRId64 "\n", count );
 
return 0;
 
} /* main() */
 
 
/********************************************************************/
int64_t calc_variants( int n, int m ) {
 
int i;
int64_t r[1+MAX_N];
 
 
/* Init */
for ( i= 0; i<m; i++ ) { r[i]= 1; }
 
/* Loop */
for ( i= m; i<=n; i++ ) {
    r[i]= r[i-1]+r[i-m];
}
 
return r[n];
 
} /* calc_variants() */
Добавлено через 1 минуту
Заодно это пример как выводить 64-битное целое на печать.
0
09.04.2010, 09:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2010, 09:30
Привет! Вот еще темы с ответами:

Размер для данных (int, char, long, double, short, unsigned, float) - C++
Напишите программу, которая будет определять размер для данных (int, char, long, double, short, unsigned, float) и выводить информацию (о...

1.Написать программу, вычисляющую размер памяти, отводимой компилятором под тип int - C++
#include &quot;iostream.h&quot; int main() { int x; cin&gt;&gt;x; cout&lt;&lt;&quot;razmer tipa int&quot;&lt;&lt;sizeof(int)&lt;&lt;sizeof(x)&lt;&lt;&quot;\n&quot;; return 0; } ...

Ошибка при компиляции error: cannot convert ‘int (*)[5]’ to ‘int**’ for argument ‘1’ to ‘void Replase(int**)' - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; #define row 5 #define col 5 using namespace...

В каком случае надо начинать с int main() или с int _tmain( int argc, _TCHAR* argv[] ) и т.д.? - C++
Не понимаю, с чего начинать. Заранее спс.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.