Форум программистов, компьютерный форум CyberForum.ru

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

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

Размер INT - C++

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

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


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

Размер 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...

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

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; } ...

'Какой размер имеет переменная типа int в 32 битной и в 64 битной OC? - C++
Объектно-ориентированное программирование в С++ Р. Лафоре.

Каков размер типа int на 64-битном и 32-битном Windows? - C++
Тип int на 32 битном Windows занимает 32 бита(4 байта) так? А на 64 битном 64 бита(8 байт) да?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
08.04.2010, 16:14     Размер INT #2
Krist_ALL, int в зависимости от разрядности системы меняет свой размер. Он может быть 16, 32 и 64 бита
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
08.04.2010, 16:16  [ТС]     Размер INT #3
у меня 32. как вычислить макс и мин число которое может быть в int?
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
08.04.2010, 16:19     Размер INT #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
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
08.04.2010, 16:30  [ТС]     Размер INT #5
а как ты узнал?
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
08.04.2010, 16:38     Размер INT #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

Физический смысл двоичного кода
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
08.04.2010, 16:56  [ТС]     Размер INT #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
где ошибка?
Psixodelik
40 / 39 / 2
Регистрация: 27.11.2009
Сообщений: 100
08.04.2010, 17:11     Размер INT #8
Ошибка в том, что 32 байта не равно 4 бита, 1 байт = 8 бит, следовательно 32 байта = 256 бит.Возводишь в квадрат. Значит 32 байта = 65536, ну или от -32 768 до 32 767
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
08.04.2010, 18:13  [ТС]     Размер INT #9
а что значит реализация?
какже тогда переносить программы на другие окмпы?
если у меня например Int s= 4 294 967 295;?
Psixodelik
40 / 39 / 2
Регистрация: 27.11.2009
Сообщений: 100
08.04.2010, 18:18     Размер INT #10
Цитата Сообщение от Krist_ALL Посмотреть сообщение
а что значит реализация?
какже тогда переносить программы на другие окмпы?
если у меня например Int s= 4 294 967 295;?
Проблем не должно быть...ща системы используют 32 разрядную архитектуру....редко у кого найдёшь 16 разрядную ОС....
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,353
08.04.2010, 18:32     Размер INT #11
Цитата Сообщение от Psixodelik Посмотреть сообщение
Проблем не должно быть...ща системы используют 32 разрядную архитектуру....редко у кого найдёшь 16 разрядную ОС....
Открой для себя мир архитектур, отличных аппаратно и программно от x86/Windows..... :-)
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,927
Завершенные тесты: 1
08.04.2010, 19:05     Размер INT #12
В любом случае, есть же тип long.
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
09.04.2010, 09:26     Размер INT #13
В C99 есть типы int32_t, int64_t, которые обозначают 32-битное целое и 64-битное целое.
Правда поддержка C99 в Visual Studio 2005/2008 отсутствует.
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
09.04.2010, 09:27     Размер INT #14
odip, но в MS VS есть свой тип __int64
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
09.04.2010, 09:30     Размер INT #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-битное целое на печать.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.04.2010, 09:33     Размер INT #16
Можно прямо указать, какой инт нужен конкретному приложению.
Л Антон
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 4
06.02.2013, 14:55     Размер INT #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_о
СПП
25 / 25 / 2
Регистрация: 15.12.2012
Сообщений: 71
06.02.2013, 15:12     Размер INT #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
Регистрация: 06.02.2013
Сообщений: 4
06.02.2013, 15:32     Размер INT #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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2013, 15:37     Размер INT
Еще ссылки по теме:

написать прогу, которая подсчитывает макс. и мин. значения переменных (int, shorting, longint, uint, char, uchar), ещё указать размер в байтах - C++
помогите плиз. желательно, чтобы программа была написана максимально простым способом

написать, прогу которая подсчитывает макс. и мин. значения переменных (int, shorting, longint, uint, char, uchar), ещё указать размер в байтах - C++
Написать желательно простейшим языком(без применения каких-то очень навороченных функций). Помогите, плиз

Написать прогу, которая подсчитывает макс. и мин. значения переменных (int, shorting, longint, uint, char, uchar), ещё указать размер в байтах - C++
Программа должна содержать функцию printf. Без функции std::count и т.п.

int\ volatile int \ const int - C++
Товарищи, паника! Имеется код: int a = 5; std::cout &lt;&lt; &quot;Init value a: &quot; &lt;&lt; a &lt;&lt; &quot;\n&quot;; int *p; p = (int*) &amp;a; *p = 0; ...

Дано натуральное число N. Напишите функцию int NumberOfZeroes(int n) (C/C++/Java) - C++
Дано натуральное число N. Напишите функцию int NumberOfZeroes(int n) (C/C++/Java), function NumberOfZeroes(n: longint): integer (Pascal),...


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

Или воспользуйтесь поиском по форуму:
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
06.02.2013, 15:37     Размер INT #20
Цитата Сообщение от Л Антон Посмотреть сообщение
Да и разве это стековое пространство, что сначала идет старшая яч. памяти и на убывание??? 0_о
от старших адресов к младшим
Yandex
Объявления
06.02.2013, 15:37     Размер INT
Ответ Создать тему
Опции темы

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