C++ C++;-如何获得十进制数的二进制表示形式

C++ C++;-如何获得十进制数的二进制表示形式,c++,binary,decimal,C++,Binary,Decimal,我试图得到十进制数的二进制表示形式。我在互联网上找遍了,但找不到任何有用的东西 有人能给我提供示例代码吗 请注意,我希望它同时在32位和64位体系结构上运行 谢谢 试试威廉·克林格(William Clinger)的论文《如何准确读取浮点数》(How to read floating point numbers)。从下至上获取位。 然后在完成后反转字符串 string bits(long n) { string tmp ; while ( n ) { tmp << (

我试图得到十进制数的二进制表示形式。我在互联网上找遍了,但找不到任何有用的东西

有人能给我提供示例代码吗

请注意,我希望它同时在32位和64位体系结构上运行


谢谢

试试威廉·克林格(William Clinger)的论文《如何准确读取浮点数》(How to read floating point numbers)。

从下至上获取位。 然后在完成后反转字符串

string bits(long n)
{
   string tmp ;

   while ( n ) { tmp << ( n & 1 ) ? "1" : "0" ;  n >>= 1 ; }
   tmp= reverse( tmp) ;
   return tmp ;
}
字符串位(长n)
{
串tmp;
而(n){tmp>=1;}
tmp=反向(tmp);
返回tmp;
}

只需从最高位开始逐个隔离位,然后打印适当的字符:

#include <limits.h>
#include <stdio.h>

void print_binary(unsigned x)
{
    for (int i = sizeof(x) * CHAR_BIT; i--; )
    {
        putchar('0' + ((x >> i) & 1));
    }
}

int main()
{
    print_binary(123);
}
#包括
#包括
无效打印\u二进制(无符号x)
{
对于(int i=sizeof(x)*字符位;i--)
{
putchar('0'+((x>>i)和1));
}
}
int main()
{
打印二进制文件(123);
}

如果您希望结果以字符串形式而不是打印到控制台,我相信您可以调整代码。

您已经尝试过了吗?如果你这样做了,问题是什么?你应该问自己的问题是,我怎样才能用手来做?。如果你不理解这个问题,你就不能编写一个程序来解决它。“没有任何有用的东西”等同于“我可以复制和粘贴的代码”?谢谢,伙计,这很有效。在不假设它在32位计算机上运行的情况下,有没有办法做到这一点?(或64位)当然,只要用一个可移植公式替换常量31,请参阅我的编辑。感谢您花时间提供帮助。