0%

C++ 八进制、十进制、十六进制的输入输出

在C++中,默认状态下,数据按十进制输入输出。如果要求按八进制或十六进制输入输出,在输入输出中必须指明相应的数据形式,oct为八进制,hex为十六进制,dec为十进制。但是二进制没有默认的输出格式。

cin 和 cout

1
2
3
4
5
6
7
8
9
10
11
int i;

cin>>oct>>i; // 输入为八进制数
cin>>hex>>i; // 输入为十六进制数
cin>>i; // 输入仍为十六进制数
cin>>dec>>i; // 输入为十进制数

cout<<hex<<i<<endl; // 输出为十六进制
cout<<dec<<<i<<endl; // 输出为十进制
cout<<oct<<i; // 输出为八进制
cout<<dec<<endl; // 恢复十进制数输出状态

printf 和 scanf

1
2
3
4
5
6
7
8
9
int i;

scanf("%o", &i); // 输入为八进制
scanf("%x", &i); // 输入为十六进制
scanf("%d", &i); // 输入为十进制

printf("%d", i); // 输出为十进制
printf("%o", i); // 输出为八进制
printf("%x", i); // 输出为十六进制