用C语言实现一直接收一个整型,输出该整型的二进制序列。
这个题目在于C语言初学者能够考虑到使用位操作,该程序在取出一个数的最后一位是用到了“&”运算;在更新这个数时用到了“>>”运算,其余的也没有什么难点。了解位操作请点击:C操作符。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//接收一个整型,输出它二进制序列的每一位(设为八位)
int main()
{
while (1)//实现一直接收
{
int a = 0;
printf("Please enter:");
scanf("%d", &a);
int i = 0;
int sum = 0;
int array[8] = { 0 };//创建一个八个元素的数组,只是为了在输出时\
完全以二进制序列的形式输出,否则为逆序。
for (i=0; i<8; i++)//八位二进制序列,因此控制八次
{
sum = a & 1;//与1便得到这个数的最后一位
if (sum == 1)
{
array[i] = 1;
}
else
{
array[i] = 0;
}
a = a >> 1;//更新这个二进制序列
}
for (i=7; i>=0; i--)//逆序输出
{
printf("%d ", array[i]);
}
printf("\n");
}
return 0;
}