本文共 1037 字,大约阅读时间需要 3 分钟。
#includeint count_bits(unsigned x){ int count = 0; while(x) { if (x & 1U) { count++; } x >>= 1; } return count;}int int_bits(void){ return count_bits(~0U);}void print_nbits(unsigned x, unsigned n){ int i = int_bits(); i = (n < i) ? n - 1 : i - 1; for(; i >= 0; i--){ putchar(((x >> i) & 1U) ? '1' : '0'); }}int main (void){ unsigned i; for(i = 0; i <= 65535U; i++){ printf("%5u ", i); print_nbits(i, 16); printf(" %06o %04X\n", i ,i); } return 0;}
运行结果:
输出格式 | 对应数据类型 | 符号的含义 |
---|---|---|
%d | int | 输出一个有符号的10进制 int 类型 |
%o | unsigned int | 输出8进制的 int 类型 |
%x | unsigned int | 输出10进制的 int 类型,字母以小写输出 |
%X | unsigned int | 输出10进制的 int 类型,字母以大写输出 |
%u | unsigned int | 输出一个 10 进制的无符号整型 |
注:
当形参n中指定了超过 int 型位数的值时,函数 print_nbits 显示 int 型的所有位数。转载地址:http://vaccz.baihongyu.com/