输入一个十进制的数,你将会得到这个数的二进制序列以及在二进制序列中的奇数位与偶数位。
比如,你输入数字13,根据所学的计算机基础知识得到,13的32位下二进制序列为00000000 00000000 00000000 00001101.
那么奇数位和偶数位就可以得知为
0000000000000011和
0000000000000010.
在这里,我们需要介绍一个符号>>,叫做右移符。他的作用是将序列向右移动。
比如:
00000000 00000000 00000000 00001101 使用了右移符>>1后得到的是:
00000000 00000000 00000000 00001101
#define _CRT_SECURE_NO_WARINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0;
int num;
printf("输入一个数:");
scanf_s("%d",&num);
int a[16] = { 0 };
int b[16] = { 0 };
for (i = 0; i < 16; i++)
{
a[i] = num % 2;
num = num >> 1;
b[i] = num % 2;
num = num >> 1;
}
printf("奇数位序列为:");
for (i = 0; i < 16; i++)
{
printf("%d ",a[i]);
}
printf("\n");
printf("偶数位序列为:");
for (i = 0; i < 16; i++)
{
printf("%d ", b[i]);
}
printf("\n");
printf("二进制序列为:");
for (i = 0; i < 16; i++)
{
printf("%d", b[15 - i]);
printf("%d", a[15 - i]);
if ((i + 1) % 4 == 0)
{
printf(" ");
}
}
system("pause");
return 0;
}
输出后的结果显示为: