c语言中将无符号整型数据以十进制、二进制、八进制、十六进制输出
作者:互联网
001、
#include <stdio.h> int count_bits(unsigned x) //此处定义函数, 用于返回任意unsigned 整型以二进制位表示时,1的总个数 { int bits = 0; while(x) { if(x & 1U) { bits++; } x >>= 1; } return bits; } 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 <= 10U; i++) //输出0~10u之间的所有无符号整数的十进制、二进制、8进制和16进制 { printf("%5u ", i); print_nbits(i, 16); printf(" %06o %04x\n", i, i); } return 0; }
标签:十六进制,1U,int,void,unsigned,整型,八进制,bits 来源: https://www.cnblogs.com/liujiaxin2018/p/16597421.html