#include <iostream>
#include <climits> // for CHAR_MIN, CHAR_MAX, UCHAR_MAX
using std::cout;
using std::endl;
int main()
{
char c = 127; // CHAR_MAX (limits.h or climits)
unsigned char uc = 255; // UCHAR_MAX
cout << "c = " << (int)c << endl;
cout << "CHAR_MAX = " << CHAR_MAX << endl;
cout << "++c = " << (int)++c << endl; // CHAR_MIN (modulo 2 arithmetic)
cout << "CHAR_MIN = " << CHAR_MIN << endl;
cout << "--c = " << (int)--c << endl; // CHAR_MAX (no warning)
cout << "uc = " << (int)uc << endl;
cout << "UCHAR_MAX = " << UCHAR_MAX << endl;
cout << "++uc = " << (int)++uc << endl; // 0 (modulo 2 arithmetic)
cout << "--uc = " << (int)--uc << endl; // UCHAR_MAX (no warning)
c = 1234; // warning: overflow
cout << "c = " << (int)c << endl; // -46
uc = -1234; // warning: unsigned conversion (overflow or underflow)
cout << "uc = " << (int)uc << endl; // 46
uc = -46; // no warning
cout << "uc = " << (int)uc << endl; // 210
return 0;
}
/*
g++ Char.cpp -o Char
./Char
c = 127
CHAR_MAX = 127
++c = -128
CHAR_MIN = -128
--c = 127
uc = 255
UCHAR_MAX = 255
++uc = 0
--uc = 255
c = -46
uc = 46
uc = 210
*/
Comments
Post a Comment