打印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

相关文章
|
Java 测试技术 Maven
Spring Boot项目打包配置详解
Spring Boot项目打包配置详解
510 0
|
IDE 程序员 编译器
适用于 Python 的 10 大最佳 IDE,你 Pick 哪一款?
适用于 Python 的 10 大最佳 IDE,你 Pick 哪一款?
1098 0
|
分布式计算 资源调度 Hadoop
HBase表数据的读、写操作与综合操作
HBase表数据的读、写操作与综合操作
232 0
|
9月前
|
人工智能 安全 大数据
企业内训|信创工作的技术难点与最佳实践-某央企金科公司
近日,TsingtaoAI组织信创技术专家,为上海某央企金融科技公司研发信创技术企业培训课程。课程通过系统化的理论学习与丰富的案例分析,全面解析信创政策、监管要求、行业趋势以及信创技术的核心难点。课程涵盖信创政策解读、行业信息洞察、业界技术栈分析、核心数据库信创改造、信创终端推广适配等多个模块。通过案例式、项目式和实战式的教学模式,帮助学员在复杂多变的信创环境中高效应对各种挑战。
450 3
|
11月前
|
Python Windows 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
191 2
|
12月前
|
缓存 开发工具 git
Git创建分支以及合并分支
在Git中,创建分支使用`git branch [branch_name]`,切换分支使用`git checkout [branch_name]`。修改文件后,通过`git add [file]`添加到暂存区,然后`git commit`提交到本地仓库。如果是新建分支的第一次推送,使用`git push origin [branch_name]`推送到远程仓库,之后可以简化为`git push`。合并分支时,使用`git merge [branch_name]`将指定分支的更改合并到当前分支。
371 2
Git创建分支以及合并分支
|
11月前
|
机器学习/深度学习 人工智能 算法
【MM2024】面向 StableDiffusion 的多目标图像编辑算法 VICTORIA
阿里云人工智能平台 PAI 团队与华南理工大学合作在国际多媒体顶级会议 ACM MM2024 上发表 VICTORIA 算法,这是一种面向 StableDiffusion 的多目标图像编辑算法。VICTORIA 通过文本依存关系来修正图像编辑过程中的交叉注意力图,从而确保关系对象的一致性,支持用户通过修改描述性提示一次性编辑多个目标。
|
Ubuntu Unix Linux
|
存储 NoSQL Redis
陌陌技术分享:陌陌IM在后端KV缓存架构上的技术实践
在本文中,陌陌数据库负责人冀浩东将聚焦探讨陌陌的 KV 系统架构选型思路,深入解析如何进行此类系统的甄选决策,同时进一步分享陌陌团队在采用 OceanBase(OBKV)过程中所经历的探索与实践经验。
256 0
|
存储 数据可视化 C++
数据结构---手撕图解双向循环链表
数据结构---手撕图解双向循环链表
数据结构---手撕图解双向循环链表