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

相关文章
|
监控 关系型数据库 MySQL
Nacos架构与原理 - 健康检查机制
Nacos架构与原理 - 健康检查机制
486 0
|
canal 关系型数据库 MySQL
Canal服务搭建
Canal服务搭建
1479 1
Canal服务搭建
|
API 索引 容器
Harmony 个人中心(页面交互、跳转、导航、容器组件)(下)
Harmony 个人中心(页面交互、跳转、导航、容器组件)(下)
570 0
|
安全 NoSQL 关系型数据库
使用cnpm搭建企业内部私有NPM仓库
cnpm是企业内部搭建npm镜像和私有npm仓库的开源方案。它同时解决了现有npm架构的一些问题。
1163 0
使用cnpm搭建企业内部私有NPM仓库
|
机器学习/深度学习 数据可视化 算法
【33】t-SNE原理介绍与对手写数字MNIST的可视化结果
【33】t-SNE原理介绍与对手写数字MNIST的可视化结果
1260 0
【33】t-SNE原理介绍与对手写数字MNIST的可视化结果
Thymeleaf 表达式工具类(#strings #dates #numbers #bools)
Thymeleaf 表达式工具类(#strings #dates #numbers #bools)
|
人工智能 自然语言处理 安全
通过阿里云Milvus与PAI搭建高效的检索增强对话系统
阿里云向量检索Milvus版是一款全托管的云服务,兼容开源Milvus并支持无缝迁移。它提供大规模AI向量数据的相似性检索服务,具备易用性、可用性、安全性和低成本等优势,适用于多模态搜索、检索增强生成(RAG)、搜索推荐、内容风险识别等场景。用户可通过PAI平台部署RAG系统,创建和配置Milvus实例,并利用Attu工具进行可视化操作,快速开发和部署应用。使用前需确保Milvus实例和PAI在相同地域,并完成相关配置与开通服务。
|
JavaScript 前端开发 Go
异步加载 JS 的方法
【10月更文挑战第24天】异步加载 JavaScript 是提高网页性能和用户体验的重要手段。通过使用不同的方法和技术,可以实现灵活、高效的异步加载 JavaScript。在实际应用中,需要根据具体情况选择合适的方法,并注意处理可能出现的问题,以确保网页能够正常加载和执行。
|
Dragonfly 安全 算法
|
小程序
uniapp实现微信小程序隐私协议组件封装
uniapp实现微信小程序隐私协议组件封装
295 0