我正在尝试获取十进制数的二进制表示。我已经浏览了整个互联网,但找不到任何有用的东西。
任何人都可以向我提供示例代码吗?
请注意,我希望它在32位和64位架构上运行。
谢谢!
答案 0 :(得分:3)
从最高点开始逐个隔离这些位,并打印相应的字符:
#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);
}
如果您希望将结果放在字符串中而不是打印到控制台,我相信您可以调整代码。
答案 1 :(得分:0)
尝试William Clinger的论文“如何准确读取浮点数”。
答案 2 :(得分:0)
从下往上获取位。 完成后反转字符串。
string bits(long n)
{
string tmp ;
while ( n ) { tmp << ( n & 1 ) ? "1" : "0" ; n >>= 1 ; }
tmp= reverse( tmp) ;
return tmp ;
}