C/C++二进制、十进制、十六进制的表示方法

来源:互联网 发布:.net门户网站源码 编辑:程序博客网 时间:2024/06/11 05:30
C/C++语言本身支持的三种输入是: 
1. 十进制。如56。 
2. 十六进制,以0x开头,比如0x7a。输出十六进制hex关键字格式化,如cout<<hex<<12。
3. 八进制,以0开头,比如030。输出八进制用oct关键字格式化,如cout<<oct<<12。


如下示例程序:

[cpp] view plaincopyprint?
  1. #include<iostream>  
  2. using namespace std;  
  3. void main()  
  4. {  
  5.     int a,b,c;  
  6.     a=10; //十进制  
  7.     b=010;//八进制  
  8.     c=0x10; //十六进制  
  9.     cout<<"a="<<a<<endl;  
  10.     cout<<"b="<<b<<endl;  
  11.     cout<<"c="<<c<<endl;  
  12.     cout<<"a(八进制)="<<oct<<a<<endl;  
  13.     cout<<"a(十六进制)="<<hex<<a<<endl;  
  14.     cout<<"a(重新变回十进制)="<<dec<<a<<endl;  
  15. }  

输出结果为:
a=10
b=8
c=16
a(八进制)=12
a(十六进制)=a

a(重新变回十进制)=10


C/C++中二进制是不直接支持的

要想输入二进制,可以用bitset<size_t N>进行转换输出。如下示例程序:

[cpp] view plaincopyprint?
  1. #include<bitset>  
  2. #include<iostream>  
  3. int main()  
  4. {  
  5.     int c=-1;  
  6.     std::bitset<sizeof(int)*8> a(c);   
  7.     std::cout<<a<<"\n";  
  8.     return 0;  
  9. }  


bitset用法:



转载自: http://www.zhiwenweb.cn/Category/Learning/1228.htm
0 0