打印2进制位数的奇数位和偶数位

简介: 打印2进制位数的奇数位和偶数位

前言

主要学习2进制输出方式


1.题目:

获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列。

分析:

打印一个整数的二进制位中的偶数位和奇数位,可以对整数进行移位操作(反向打印),再将移位的二进制位与1进行&操作,


案例1


#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
  int n = 0;
  scanf("%d", &n);
  printf("2进制:\n");
  for (int i = 32; i >= 0; i--) {
  printf("%d ", (n >> i) & 1);
  //反向打印
  }
  printf("\n奇数位:\n");
  for (int i = 31; i >= 0; i -= 2) {
  printf("%d ", (n >> i) & 1);
  }
  printf("\n偶数位:\n");
  for (int i = 32; i > 0; i -= 2) {
  printf("%d ", (n >> i) & 1);
  }
  return 0;
}



输出结果:

a4148ca539cb41948d7260bd44f51163.png



be08f906208f4c01af78f1617969656f.png

案例2


#include<stdio.h>
void Print(int n)
{
  int i = 31;
  printf("二进制位:");
  while (i >= 0)
  {
  printf("%d ", (n >> i) & 1);
  i--;  //此处是使结果正向打印
  }
  printf("\n");
  printf("奇数位:");
  for (i = 30; i >= 0; i-=2)  //此处是使结果正向打印
  {
  printf("%d ", (n >> i) & 1);
  }
  printf("\n");
  printf("偶数位:");
  for (i = 31; i >= 1; i -= 2)  //此处是使结果正向打印
  {
  printf("%d ", (n >> i) & 1);
  }
  printf("\n");
}
int main()  //获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
{
  int a = 0;
  scanf("%d", &a);
  Print(a);
    return 0;
}


输出结果:

ed773024bccf4ee3af3913c38ebec313.png

目录
打赏
0
0
0
0
1
分享
相关文章
打印整数二进制的奇数位和偶数位
打印整数二进制的奇数位和偶数位
97 0
交换一个整数二进制表示中的奇数位和偶数位
题目 原文: 写程序交换一个整数二进制表示中的奇数位和偶数位,用尽可能少的代码实现。 (比如,第0位和第1位交换,第2位和第3位交换…) 解答 这道题目比较简单。分别将这个整数的奇数位和偶数位提取出来,然后移位取或即可。
982 0
C语音:打印整数二进制的奇数位和偶数位
总体思路: (一). 输入数据 (二). 打印奇数位: 使用 for循环 循环产生 1~32 之间的偶数, 使用 移位操作符 移动偶数位,移动后就是奇数位, 这时再 按位与1 取出当前位, 进行打印。打印完奇数后进行 换行
116 0
获取一个整数二进制序列中所有的偶数位和奇数位
获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
169 0
|
10月前
用一行代码(宏)交换一个二进制整数的奇数位和偶数位
用一行代码(宏)交换一个二进制整数的奇数位和偶数位
C语言:打印整数二进制的奇数位和偶数位
C语言:打印整数二进制的奇数位和偶数位
195 0
C语言:打印整数二进制的奇数位和偶数位
十进制与二进制转换(负数+正数)
十进制与二进制转换(负数+正数)
403 0
十进制与二进制转换(负数+正数)
一种基于质数(2、3、5、7、11…)的变进制数,第一位为2进制,第二位为3进制,第三位为5进制,以此类推。请将该变进制数转化为十进制数。
一种基于质数(2、3、5、7、11…)的变进制数,第一位为2进制,第二位为3进制,第三位为5进制,以此类推。请将该变进制数转化为十进制数。
195 0
一种基于质数(2、3、5、7、11…)的变进制数,第一位为2进制,第二位为3进制,第三位为5进制,以此类推。请将该变进制数转化为十进制数。
进制转换(无负数)
这是今天一个比较小的练习题,但是我想通过这个来试一试普遍的方法,也就是说自己写个方法,SysConvert(进制转换),两个参数,第一个就是源头数source_num,第二个就是目标进制destination_sys
143 0
进制转换(无负数)