C/C++语言本身支持的三种输入是:
1. 十进制。如56。
2. 十六进制,以0x开头,比如0x7a。输出十六进制hex关键字格式化,如cout<<hex<<12。
3. 八进制,以0开头,比如030。输出八进制用oct关键字格式化,如cout<<oct<<12。
如下示例程序:
#include<iostream>
using namespace std;
void main()
{
int a,b,c;
a=10; //十进制
b=010;//八进制
c=0x10; //十六进制
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
cout<<"c="<<c<<endl;
cout<<"a(八进制)="<<oct<<a<<endl;
cout<<"a(十六进制)="<<hex<<a<<endl;
cout<<"a(重新变回十进制)="<<dec<<a<<endl;
}
输出结果为:
a=10
b=8
c=16
a(八进制)=12
a(十六进制)=a
a(重新变回十进制)=10
C/C++中二进制是不直接支持的
要想输入二进制,可以用bitset<size_t N>进行转换输出。如下示例程序:
#include<bitset>
#include<iostream>
int main()
{
int c=-1;
std::bitset<sizeof(int)*8> a(c);
std::cout<<a<<"\n";
return 0;
}
bitset用法: