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

int main() {
	cout << sizeof(void*)*8 << " bits pointers\n";
	
	const int ubits =  sizeof (unsigned)*8; 
	const int ullbits =  sizeof (unsigned long long)*8; 
	cout << ubits << " bits for an unsigned\n"; 
	cout << ullbits << " bits for a long long \n";
	
	unsigned  utest=numeric_limits<unsigned>::max(); 
	unsigned long long ulltest=numeric_limits<unsigned long long>::max();
	
	cout << "unsigned "<<utest << " rshift by " << ubits << " = "
		<< (utest>>ubits)<<endl; 
	cout << "unsigned long long "<<ulltest << " rshift by " << ullbits << "= "
		<< (ulltest>>ullbits)<<endl; 

	return 0;
}