Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.68/155: Рейтинг темы: голосов - 155, средняя оценка - 4.68
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
1

Размер INT

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

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


непойму ск макс может инт держать?
sizeof(int) = 4
4 байта = 32 бита
я так понял по дефолту инт всегда unsigned да?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2010, 16:11
Ответы с готовыми решениями:

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

Какая из этих функций int Q(int w) int W(int y,int u,int i) сработает быстрее?
Если есть 2 функции(простые или перегруженные) к примеру Q(int w) int W(int y,int u,int i)или int...

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

Размер переменной int в С++
Здравствуйте. Связан ли как-нибудь диапазон значений переменной int и допустимым значением в...

23
Эксперт JavaЭксперт С++
8369 / 3591 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
08.04.2010, 16:14 2
Krist_ALL, int в зависимости от разрядности системы меняет свой размер. Он может быть 16, 32 и 64 бита
0
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
08.04.2010, 16:16  [ТС] 3
у меня 32. как вычислить макс и мин число которое может быть в int?
0
Эксперт JavaЭксперт С++
8369 / 3591 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
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
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
08.04.2010, 16:30  [ТС] 5
а как ты узнал?
0
Эксперт JavaЭксперт С++
8369 / 3591 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
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
10 / 10 / 2
Регистрация: 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
41 / 40 / 5
Регистрация: 27.11.2009
Сообщений: 100
08.04.2010, 17:11 8
Ошибка в том, что 32 байта не равно 4 бита, 1 байт = 8 бит, следовательно 32 байта = 256 бит.Возводишь в квадрат. Значит 32 байта = 65536, ну или от -32 768 до 32 767
2
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
08.04.2010, 18:13  [ТС] 9
а что значит реализация?
какже тогда переносить программы на другие окмпы?
если у меня например Int s= 4 294 967 295;?
0
41 / 40 / 5
Регистрация: 27.11.2009
Сообщений: 100
08.04.2010, 18:18 10
Цитата Сообщение от Krist_ALL Посмотреть сообщение
а что значит реализация?
какже тогда переносить программы на другие окмпы?
если у меня например Int s= 4 294 967 295;?
Проблем не должно быть...ща системы используют 32 разрядную архитектуру....редко у кого найдёшь 16 разрядную ОС....
0
Эксперт С++
2922 / 1271 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
08.04.2010, 18:32 11
Цитата Сообщение от Psixodelik Посмотреть сообщение
Проблем не должно быть...ща системы используют 32 разрядную архитектуру....редко у кого найдёшь 16 разрядную ОС....
Открой для себя мир архитектур, отличных аппаратно и программно от x86/Windows..... :-)
0
Эксперт С++
1669 / 1041 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
08.04.2010, 19:05 12
В любом случае, есть же тип long.
0
Эксперт С++
7175 / 3234 / 79
Регистрация: 17.06.2009
Сообщений: 14,164
09.04.2010, 09:26 13
В C99 есть типы int32_t, int64_t, которые обозначают 32-битное целое и 64-битное целое.
Правда поддержка C99 в Visual Studio 2005/2008 отсутствует.
0
Эксперт JavaЭксперт С++
8369 / 3591 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
09.04.2010, 09:27 14
odip, но в MS VS есть свой тип __int64
0
Эксперт С++
7175 / 3234 / 79
Регистрация: 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
4200 / 1792 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
09.04.2010, 09:33 16
Можно прямо указать, какой инт нужен конкретному приложению.
0
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 4
06.02.2013, 14:55 17
Решил написать в этот топик раз тема про размерность переменных. (Я нуб так что ногами не бить..)
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include  <iostream>
 
using namespace std;
 
void main()
{
    int i = 17;
    int j = 29;
 
    cout << &i << endl;
    cout << &j << endl;
 
    cout << sizeof(i) << endl;
    cout << sizeof(j) << endl;
 
    cout << "end" << endl;
}
Результат:

0012FF4C
0012FF40
4
4

Вопрос, почему при размерности в 4 байта смещение адреса какое-то не внятное...
Или это я туплю, ткните носом...
Да и разве это стековое пространство, что сначала идет старшая яч. памяти и на убывание??? 0_о
0
25 / 25 / 8
Регистрация: 15.12.2012
Сообщений: 71
06.02.2013, 15:12 18
Ещё можно такой способ использовать чтобы узнать какой предел у типов

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cstdlib>
 
int main(){
 
    int                          my_int;
    long int                my_long_int;
    long long int      my_long_long_int;
    unsigned int         my_usigned_int;
    
    std::cout << "INT = " << my_int
              << "\nLONG INT = " << my_long_int
              << "\nUSIGNED INT = " << my_usigned_int 
              << "\nLONG LONG INT = " << my_long_long_int << '\n';
 
system("pause");              
return 0;
}
у меня вывело
Код
INT = 4201246
LONG INT = 2293652
USIGNED INT = 4201152
LONG LONG INT = 8490430314399662078  
Для продолжения нажмите любую клавишу . . .
0
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 4
06.02.2013, 15:32 19
Цитата Сообщение от СПП Посмотреть сообщение
Ещё можно такой способ использовать чтобы узнать какой предел у типов

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cstdlib>
 
int main(){
 
    int                          my_int;
    long int                my_long_int;
    long long int      my_long_long_int;
    unsigned int         my_usigned_int;
    
    std::cout << "INT = " << my_int
              << "\nLONG INT = " << my_long_int
              << "\nUSIGNED INT = " << my_usigned_int 
              << "\nLONG LONG INT = " << my_long_long_int << '\n';
 
system("pause");              
return 0;
}
у меня вывело
Код
INT = 4201246
LONG INT = 2293652
USIGNED INT = 4201152
LONG LONG INT = 8490430314399662078  
Для продолжения нажмите любую клавишу . . .
а ничего что они не инициализированы, да и значения у тебя какие-то странные?
без знаковое int 4 байта или 32 бита = 232-1 = 4 294 967 295

Добавлено через 7 минут
да это стек, припаял к объявлению квалификатор static увидел то что ждал -
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include  <iostream>
#include <cstdlib>
 
using namespace std;
 
void main()
{
    static int i = 17;
    static int j = 29;
 
    cout << &i << endl;
    cout << &j << endl;
 
    cout << sizeof(i) << endl;
    cout << sizeof(j) << endl;
 
    cout << "end" << endl;
}
Результат -

00419040
00419044
4
4
0
Каратель
Эксперт С++
6601 / 4020 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
06.02.2013, 15:37 20
Цитата Сообщение от Л Антон Посмотреть сообщение
Да и разве это стековое пространство, что сначала идет старшая яч. памяти и на убывание??? 0_о
от старших адресов к младшим
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2013, 15:37

Не работает перегрузка индексного оператора [], вместо [int][int] почему то нужно ставить [0][int][int]
#include&lt;iostream&gt; #include&lt;string&gt; #include&lt;vector&gt; #include&lt;algorithm&gt; #include&lt;ctime&gt;...

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru