C语音:打印整数二进制的奇数位和偶数位

简介: 总体思路:(一). 输入数据 (二). 打印奇数位:使用 for循环 循环产生 1~32 之间的偶数,使用 移位操作符 移动偶数位,移动后就是奇数位,这时再 按位与1 取出当前位,进行打印。打印完奇数后进行 换行

总体思路:

(一). 输入数据

(二). 打印奇数位

使用 for循环 循环产生 1~32 之间的偶数

使用 移位操作符移动偶数位移动后就是奇数位

这时再 按位与1取出当前位

进行打印。打印完奇数后进行 换行

         (三). 打印偶数位

使用 for循环 循环产生 1~32 之间的奇数

使用 移位操作符移动奇数位移动后就是偶数位

这时再 按位与1取出当前位

进行打印。打印完奇数后进行 换行

第一步:

(1). 输入数据 -- scanf()函数

                   

实现代码:

#include <stdio.h>
int main()
{
  //输入数据:
  int n = 0;
  scanf("%d", &n);
  return 0;
}

实现图片:


63aad41f5b8e4f6bb6ef527c32135350.png

第二步:

打印奇数位

           

(1).使用 for循环 循环产生 1~32 之间的偶数

(2).使用 移位操作符移动偶数位移动后就是奇数位

这时再 按位与1取出当前位

               

(3).进行打印。打印完奇数后进行 换行

                   

实现代码:

#include <stdio.h>
int main()
{
  //输入数据:
  int n = 0;
  scanf("%d", &n);
  //打印 奇数位 :
  printf("奇数位:");
  //使用 for循环 循环产生 1~32 之间的偶数
  int i = 0;
  for (i = 30; i >= 0; i -= 2)
  //循环产生的偶数位:30 28 26 ...
  {
    //使用 移位操作符 和 按位与 来取出当前位 并打印
    printf("%d", (n >> i) & 1);
    //移位后就是奇数位,按位与1 取出最低位
  }
  //换行
  printf("\n");
  return 0;
}

实现图片:

image.png

第三步:

打印偶数位

           

(1).使用 for循环 循环产生 1~32 之间的奇数

(2).使用 移位操作符移动奇数位移动后就是偶数位

这时再 按位与1取出当前位

             

实现代码:

#include <stdio.h>
int main()
{
  //输入数据:
  int n = 0;
  scanf("%d", &n);
  //打印 奇数位 :
  printf("奇数位:");
  //使用 for循环 循环产生 1~32 之间的偶数
  int i = 0;
  for (i = 30; i >= 0; i -= 2)
  //循环产生的偶数位:30 28 26 ...
  {
    //使用 移位操作符 和 按位与 来取出当前位 并打印
    printf("%d", (n >> i) & 1);
    //移位后就是奇数位,按位与1 取出当前位
  }
  //换行
  printf("\n");
  //打印 偶数位 :
  printf("偶数位:");
  //使用 for循环 循环产生 1~32 之间的奇数
  for (i = 31; i >= 1; i -= 2)
    //循环产生的奇数位:31 29 27 ...
  {
    //使用 移位操作符 和 按位与 来取出当前位 并打印
    printf("%d", (n >> i) & 1);
    //移位后就是偶数位,按位与1 取出当前位
  }
  return 0;
}

实现图片:

image.png

最终代码和实现效果

最终代码:

#include <stdio.h>
int main()
{
  //输入数据:
  int n = 0;
  scanf("%d", &n);
  //打印 奇数位 :
  printf("奇数位:");
  //使用 for循环 循环产生 1~32 之间的偶数
  int i = 0;
  for (i = 30; i >= 0; i -= 2)
  //循环产生的偶数位:30 28 26 ...
  {
    //使用 移位操作符 和 按位与 来取出当前位 并打印
    printf("%d", (n >> i) & 1);
    //移位后就是奇数位,按位与1 取出当前位
  }
  //换行
  printf("\n");
  //打印 偶数位 :
  printf("偶数位:");
  //使用 for循环 循环产生 1~32 之间的奇数
  for (i = 31; i >= 1; i -= 2)
    //循环产生的奇数位:31 29 27 ...
  {
    //使用 移位操作符 和 按位与 来取出当前位 并打印
    printf("%d", (n >> i) & 1);
    //移位后就是偶数位,按位与1 取出当前位
  }
  return 0;
}

实现效果:

9f2087c48d934940a15716ff8598a3b2.png

相关文章
|
24天前
|
C语言
C语言----获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
C语言----获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
|
8月前
|
C语言
写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换(C语言)
写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换(C语言)
45 0
|
28天前
|
算法
使用链式栈,实现十进制转八进制:键盘输入一个十进制数,经过链式栈的相关算法,输出八进制数
使用链式栈,实现十进制转八进制:键盘输入一个十进制数,经过链式栈的相关算法,输出八进制数
|
2月前
|
小程序 C语言
【C语言】输入一个十进制正整数,将它对应的二进制数的各位逆序,形成新的十进制数输出。题目分析及拓展应用。
【C语言】输入一个十进制正整数,将它对应的二进制数的各位逆序,形成新的十进制数输出。题目分析及拓展应用。
73 0
|
2月前
用一行代码(宏)交换一个二进制整数的奇数位和偶数位
用一行代码(宏)交换一个二进制整数的奇数位和偶数位
|
2月前
|
C语言
[C语言][题]获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
[C语言][题]获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
30 0
|
2月前
|
算法 Python
计算32位二进制整数中1的个数(包括负数补码)
计算32位二进制整数中1的个数(包括负数补码)
52 0
|
7月前
|
C语言
C语言第三十二弹---打印整数二进制的奇数位和偶数位
C语言第三十二弹---打印整数二进制的奇数位和偶数位
|
2月前
打印2进制位数的奇数位和偶数位
打印2进制位数的奇数位和偶数位
|
12月前
打印整数二进制的奇数位和偶数位
打印整数二进制的奇数位和偶数位
33 0