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


int main() {

	int minInt = 1 << (sizeof(int) * 8 - 1);
	int maxInt = ~minInt;
	
	cout << minInt << " ~ " << numeric_limits<int>::min() << endl;
	cout << maxInt << " ~ " << numeric_limits<int>::max() << endl;

	unsigned minUint = 0;
	unsigned maxUint = ~minUint;

	cout << minUint << " ~ " << numeric_limits<unsigned>::min() << endl;
	cout << maxUint << " ~ " << numeric_limits<unsigned>::max() << endl;

	unsigned minFloat = 0x007fffff;
	unsigned maxFloat = 0x7f7fffff;
	
	cout << *((float*)&minFloat) << " ~ " << numeric_limits<float>::min() << endl;
	cout << *((float*)&maxFloat) << " ~ " << numeric_limits<float>::max() << endl;
	
	return 0;
}

