C++/C语言本身支持的三种输入是:
1. 十进制。如23,456;
2. 十六进制,以0x开头。比如0x7a。输出十六进制hex关键字格式化,如cout<<hex<<12。
3. 八进制,以0开头。比如08,9012。输出八进制用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;
}
输出结果为:
a=10
b=8
c=16
a(八进制)=12
a(十六进制)=a
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;
}
或者如果是string类型字符串的话,可以使用 Convert.ToInt32("01010101", 2)。
bitset的函数用法: