做网站为什么需要营业执照,惠阳住房与规划建设局网站,局域网网站建设软件,北京住房与城乡建设网站想知道怎样输出二进制。我们知道C输出十六进制是cout〈〈hex〈〈 a#xff1b;而八进制是cout〈〈 ocx〈〈 a;二进制则没有默认的输出格式#xff0c;需要自己写函数进行转换#xff0c;于是上网搜索了一下。网上思路真是广泛啊。下面列出一些方法。 #include 〈iostream…想知道怎样输出二进制。我们知道C输出十六进制是cout〈〈hex〈〈 a而八进制是cout〈〈 ocx〈〈 a;二进制则没有默认的输出格式需要自己写函数进行转换于是上网搜索了一下。网上思路真是广泛啊。下面列出一些方法。 #include 〈iostream〉 #include 〈list〉 #include 〈bitset〉 using namespace std; //递归输出二进制函数 void BinaryRecursion(int n) { int a; an%2; nn〉〉1; if (n0) ; else BinaryRecursion(n); cout〈〈a; } //使用容器转换二进制 void BinaryVector(int n) { int temp; tempn; list〈int〉 L; while(temp!0) { L.push_front(temp%2); temptemp〉〉1; } for (list〈int〉::iterator iterL.begin();iter!L.end();iter ) cout〈〈*iter; cout〈〈endl; } //一般方法32位逐步与1做与运算。 void Binarycout(int n) { for (int i31;i〉0;i--) { cout〈〈((n〉〉i)1); } cout〈〈endl; } //使用bitset转换二进制 void BinaryBitset(int n) { cout〈〈bitset〈sizeof(int)*8〉(n)〈〈endl; } int main() { int a1045,b2; int c; cab; cout〈〈BinaryRecursion(c); BinaryRecursion(c); cout〈 BinaryVector(c); cout〈〈Binarycout(c):; Binarycout(c); cout〈〈BinaryBitset(c):; BinaryBitset(c); cout〈〈BinaryChar(c):; BinaryChar(c); //cout〈 return 0; } 运行后的结果如下 BinaryRecursion(c)10000010111 BinaryVector(c):10000010111 Binarycout(c):00000000000000000000010000010111 BinaryBitset(c):00000000000000000000010000010111 BinaryChar(c):10000010111 Press any key to continue 从中可以看出有两种运算会得出32位的结果不太好。我对C还不是很精通所以这个效率还不是很清楚哪个个好。 我觉得用容器的可能会好些吧。如果是C就用字符转换函数或者直接除后和1做与运算。 #includestdio.h void printb(int,int); int main() { int x; printf(Input number:); scanf(%d,x); printb(x,sizeof(int)*8); putchar(\n); return 0; } void printb(int x,int n) { if(n0) { putchar(0((unsigned)(x(1(n-1)))(n-1))); printb(x,n-1); } }