Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4519404
  • 博文数量: 356
  • 博客积分: 10458
  • 博客等级: 上将
  • 技术积分: 4734
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-24 14:59
文章分类

全部博文(356)

文章存档

2020年(17)

2019年(9)

2018年(26)

2017年(5)

2016年(11)

2015年(20)

2014年(2)

2013年(17)

2012年(15)

2011年(4)

2010年(7)

2009年(14)

2008年(209)

分类: C/C++

2008-05-31 18:20:03

 
输出二进制形式
不需要用数组,仅供参考。
复制内容到剪贴板代码:
#include
using namespace std;
int main()
{
    int n;
    cout << "input n:";
    cin >> n;
    for(int i=1; i<=32; i++){
        cout << (n<0?1:0) << (i%8==0?" ":"");
        n = n<<1;
    }
    cout << endl;
}
 
 
template<typename T>
void Bits(T const& e)
{
   
int n(sizeof(T));
   
char* ch=(char*)&e;
   
for(int i(n-1),j;i>=0;--i)
    {
       
for(j=7;j>=0;--j)
            ch[i]
&(char(1)<<j) ? std::cout<<1 : std::cout<<0;
        std::cout
<<' ';

} std::cout<<"\n";
}
int main()
{
   
float a=3.14;
   
double d=6.28;
    Bits(a);
    Bits(d);
   
return 0;
}

 

http://blog.csdn.net/rainharder/archive/2008/03/10/2164388.aspx

打印二进制的代码也不是那么容易的,不信写个看看,和下面这个(一本老外的C语言教材上的代码)比较一下,看看写的是否全面

//#define CHAR_BIT 8
 
void bit_print(int a)
{
       
int i;
        
int n = sizeof(int* CHAR_BIT;
        
int mask = 1 << (n - 1);
           
for(i = 1; i <= n; ++i)
      
{
               putchar(((a 
& mask) == 0? '0' : '1');
               a 
<<= 1;
              
if(i % CHAR_BIT == 0 && i < n)
                   putchar(
' ');
       }

}

 

c++就简单多了

cout << bitset::digits>(123)  << endl;
// 还可以把二进制字符串转换为整数
cout << bitset<100>(string("100010110")).to_ulong() << endl;


阅读(12805) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-05-31 18:37:03

limits和其他有用的模板 limits库描述了本地系统上的各种基础类型的特性,它通过模板类numberic_limits<>为所有的数值类型提供了相应的属性信息。在传统的C语言方法中,每一种数据类型的属性都由唯一的宏标识符表示,例如INT_MAX表示本地系统的最大int型值。而在模板类numeric_limits<>中则定义了一个静态函数max()用于返回相应的属性值,例如numeric_ limits::max()返回本地系统的最大int型值。使用模板类可以大大减少用于描述本地系统的符号名的数量。 下面是一个使用numeric_limits<>函数的例子: 文件 limits.cpp #include #include using namespace std; int main() { cout << numeric_limits::digits << " char\n "; cout << numeric_limits