利用位运算 实现十进制转换二进制的一种想法及实现,请各位点评
程序代码:
#include <stdio.h> //位操作函数 取1或者0 //source为目标操作数 pos 为从右向左的位置 int wgetbit(unsigned source,int pos) { return source>>(pos-1) & 1; } //判断二进制的位数 int wgetnum(unsigned source) { int s=0; while(source>0) { s++; source/=2; } return s; } int main() { unsigned n=3699; int num=wgetnum(n); for(int i=num;i>=1;i--) printf("%d",wgetbit(n,i)); printf("\n"); return 0; }