【基础学习】C 打印数字的二进制表示
2017-02-06 本文已影响25人
Jiubao
为了研究下数字的位运算,学习研究了下数字的二进制表示。
#include <stdio.h>
#define LEN 120
int main ()
{
char c;
int i;
long int x;
int a[LEN];
for (i = 0; i < LEN; i++)
{
a[i] = 0;
}
printf("Help: Input q to quit.\n");
while(c != 'q')
{
printf("Input the number you want to show: \n");
scanf("%ld", &x);
c = getchar();
if (c == 'q')
{
return 0;
}
for (i = 0; i < LEN; i++)
{
if (x % 2 == 0)
{
a[i] = 0;
} else {
a[i] = 1;
}
x = x >> 1;
}
for (i = LEN - 1; i >= 0; i--)
{
printf("%d", a[i]);
}
printf("\n");
}
}
主要是声明一个 128 长度的数组,用来存放 0 和 1,之后读取到需要计算的数字,比如 2,再挨个移位,计算其末位是否是 0 还是 1,存储到数组。最后倒序输出。
参考:chinaunix