Я только начинаю изучать код (например, 3 дня назад) И у меня есть несколько проблем ... Во-первых, мои «int», «long int» и «unsigned int» Все выглядят одинаково ,C++ long int то же, что и int?
#include <iostream>
#include <limits.h>
using namespace std;
int main() {
int value = 2147483647;
cout << value << endl;
cout << "Max int value: "<< INT_MAX << endl;
cout << "Min int value: "<< INT_MIN << endl;
long lvalue = 568534534;
cout << lvalue << endl;
short svalue = 22344;
cout << svalue << endl;
cout << "Size of int " << sizeof(int) << endl;
cout << "Size of short int: " << sizeof(short) << endl;
cout << "Size of long int: " << sizeof(long) << endl;
cout << "Size of unsigned int: " << sizeof(unsigned int) << endl;
unsigned int uvalue = 5345554;
cout << uvalue << endl;
return 0;
}
И когда я запускаю его, я получаю это:
568534534
22344
Size of int 4
Size of short int: 2
Size of long int: 4
Size of unsigned int: 4
5345554
Как вы можете видеть. Long и unsigned int = int.
Это не моя единственная проблема. С «длинным двойником», независимо от того, насколько велика цифра, она ВСЕГДА выводит отрицательный результат. Вот код:
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
float fvalue = 123.456789;
cout << sizeof(float) << endl;
cout << setprecision(20) << fixed << fvalue << endl;
double dvalue = 234.5554;
cout << setprecision(20) << fixed << dvalue << endl;
long double lvalue = 123.4;
cout << setprecision(20) << fixed << lvalue << endl;
return 0;
}
Вот результат:
4
123.45678710937500000000
234.55539999999999000000
-18137553330312606000000000000000000000000000000000000
(Удалено большинство нулей кстати)
Итак, как вы можете видеть, что есть проблемы с чем-то. Я использую затмение как мой IDLE и я использую Mingw32 Хотя я на 64 битной системе, я попытался установить MinGW-w64 для моей системы, но не смогли выяснить, как ...
C++ оставляет размер целочисленных типов в значительной степени до разработчиков. [Дайте это прочитать] (http://en.cppreference.com/w/cpp/language/types#Integer_types). Обратите внимание, что стандарт C++ указывает только на то, что целые типы должны быть не менее X бит. Все ваши целые типы могут быть 64 бита. – user4581301
Вы должны задать один вопрос одновременно. – juanchopanza
Обратите внимание, что в C++ вы можете использовать 'std :: numeric_limits' вместо тех макросов C, что и' INT_MAX'. –