下面是摘抄网友的的代码
void fun(int i, char *res){ int j = 0; while(i){ *(res + j) = i % 2 + '0'; i /= 2; ++j; } *(res + j) = '\0'; strrev(res); }
这个感觉太冗长了。
而后是这个:
#include <iostream> #include <bitset> #include <string> void printBinary(int n) { std::bitset<32> bits(n); for (int i = bits.size() - 1; i >= 0; --i) { std::cout << bits[i]; } std::cout << std::endl; }
感觉还比较简洁的c++代码
#include<iostream> #include<bitset> using namespace std; void two(int x) { bitset<32> two(x); for(int len=two.size()-1;len>=0;--len) cout<<two[len]; cout<<endl; }
这个是我看到的非常好的二进制显示代码。。
不过,最后我要的是推荐我更欣赏的代码,
而且是c的。。哈哈
void binary_(int x) { if (x<=0) return; else { binary_(x/2); printf("%d",x%2); } }
很好好强大,,
使用递归实现的。
我确实拜服。。
以后要多多用递归。。
哈哈。