jeudi 31 août 2017

Why do the max values of long and long long produce the same output?

#include <iostream>
using namespace std;
#include <climits>

int main () {

    int n_int = INT_MAX;
    short n_short = SHRT_MAX;
    long n_long = LONG_MAX;
    long long n_llong = LLONG_MAX;

    cout << "int is " << sizeof (int) << " bytes." << endl;
    cout << "short is " << sizeof n_short << " bytes." << endl;
    cout << "long is " << sizeof n_long << " bytes." << endl;
    cout << "long long is " << sizeof n_llong << " bytes." << endl;
    cout << endl;

    cout << "Maximum values:" << endl;
    cout << "int:   " << n_int << endl;
    cout << "short: " << n_short << endl;
    cout << "long:  " << n_long << endl;
    cout << "llong: " << n_llong << endl << endl;
    //cout << endl;

    cout << "Minimum int value = " << INT_MIN << endl;
    cout << "Maximum int value = " << INT_MAX << endl;
    cout << "Bits per byte = " << CHAR_BIT << endl;

    return 0;
}

OUTPUT: The long and long long variables are producing the exact same maximum values, I'm not sure why. The long value is supposed to output the maximum value of 2147483647.

int is 4 bytes.
short is 2 bytes.
long is 8 bytes.
long long is 8 bytes.
Maximum values:
int:   2147483647
short: 32767
long:  9223372036854775807
llong: 9223372036854775807
Minimum int value = -2147483648
Maximum int value = 2147483647
Bits per byte = 8

Aucun commentaire:

Enregistrer un commentaire