I just checked again and that's what the code is printing ...
You are right I made a type
I use the following code in order to neatly print thousands separators:
std::cout.imbue( std::locale( "en_US.utf8" ));
std::cout << (1LL << 32);
This will print 4,294,967,296 http://coliru.stacked-crooked.com/a/ce64a281172cc213
For those using printf():
printf("%'lld\n", (1LL << 32));