1.cout不支持输出二进制,只支持八进制、十进制、十六进制输出,想输出二进制需要用到bitset
2.每次使用oct、dec、hex之后会将默认输出形式分别改为八进制、十进制、十六进制,而使用 bitset输出二进制后则不会改变
代码如下:
1 #include <iostream> 2 #include <vector> 3 #include <ctime> 4 #include <cstdlib> 5 #include <cstring> 6 #include <bitset> 7 8 int main() 9 { 10 using namespace std; 11 12 //二进制输出 13 cout << bitset<sizeof(unsigned long) * 8>(1UL << 27) << endl; 14 15 cout << (1UL << 27) <<endl; 16 17 //八进制输出 18 cout << oct << (1UL << 27) << endl; 19 20 cout << (1UL << 27) <<endl; 21 22 //十六进制输出 23 cout << hex << (1UL << 27) <<endl; 24 25 cout << (1UL << 27) <<endl; 26 27 //十进制输出 28 cout << dec << (1UL << 27) << endl; 29 30 cout << (1UL << 27) <<endl; 31 32 return 0; 33 }
结果如下:
e:\C++\C++ primer\4>cd "e:\C++\C++ primer\4\" && g++ test.cc -o test && "e:\C++\C++ primer\4\"test 00001000000000000000000000000000 134217728 1000000000 1000000000 8000000 8000000 134217728 134217728