输出整数n的二进制形式

来源:互联网 发布:性教育教材 知乎 编辑:程序博客网 时间:2024/05/22 04:35

输出整数n的二进制形式:

如:

0 输出 0

1 输出 1

2 输出 10

10 输出 1010


数组方式:

void print_binary(int n){char arr[32] = {0};int len = 0;do {arr[len++] = (n&1)+'0', n = n>>1;} while (n);while (len-- > 0 && printf("%c", arr[len]));printf("\n");}

不用数组:

void print_binary(int n){// int类型4个Byte, 共32位int max_len = 32;// 寻找第一次出现1的位置while (max_len-- > 0 && !(n>>max_len));// 如果找不到1(如n为0时), 修改max_len为1if (++max_len == 0) max_len = 1;// 从第一次出现1的位置开始输出while (max_len-- > 0 && printf("%d", (n>>max_len)&1));printf("\n");}

测试用例:

print_binary(-2);print_binary(-1);print_binary(0);print_binary(1);print_binary(2);print_binary(10);print_binary(15);print_binary(100);print_binary(1000);

输出:

111111111111111111111111111111101111111111111111111111111111111101101010111111001001111101000


原创粉丝点击