关于二进制的练习

2023-11-09

前言:一、二题为牛客网练习,都有题目链接。

一、两个整数二进制位不同个数

题目链接

输入两个整数,求两个整数二进制格式有多少个位不同

示例1
输入:
22 33

输出

5

解题思路:
1.当我们想判断两个整数二进制位不同个数时,可以把这两个整数进行 ^(按位异或)操作,不同的二进制为 1 ,相同则为0,这样我们只需计算 ^ 后1的个数。
2.将 ^ 后的结果与1进行 &(按位与)操作,如果得出的结果为 1 则说明有一个 1 ,此操作需要我们判断32次,所以需要一个循环,而每次 & 1 后需要进行右移操作,因为是循环32次所以我们不需要考虑右移后补进来的数。

当然在第二步时还有更好的办法这里我们先上代码

#include <stdio.h>

int main() {

	int a = 0;
	int b = 0;
	int ret = 0;
	int count = 0;
	scanf("%d %d", &a, &b);
	ret = a ^ b;		//不同则为1,相同为0
	while (ret) {
		ret = ret & (ret - 1);	
		count++;
	}
	printf("%d\n", count);
	return 0;
}

在这里插入图片描述

在这里插入图片描述所以以后我们可以使用ret = ret & (ret - 1)的方式对一个二进制1的个数进行计算。

二、输入一个整数 n ,输出该数32位二进制表示中1的个数。其中负数用补码表示。

题目链接

示例1
输入
10
输出

2

说明

十进制中10的32位二进制表示为0000 0000 0000 0000 0000 0000 0000 1010,其中有两个1。

示例2
输入

-1 输出

32
说明

负数使用补码表示 ,-1的32位二进制表示为1111 1111 1111 1111 1111 1111 1111 1111,其中32个1

解题思路:
在第一题最后,我们说过了计算如何计算二进制1的个数了这里就不再说了。

int NumberOf1(int n ) {
    // write code here
    int count = 0;	//计数用的
	while (n) {
		n = n & (n - 1);
		count++;
	}
	return count;
}

在这里插入图片描述

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

解题思路:
在这里插入图片描述

#include <stdio.h>
void print(int n) {
	int i = 0;
	//打印奇数
	for (i = 30; i >= 0; i -= 2) {
		printf("%d",(n>>i) & 1);	//这里n>>i后并没有改变n的值。
	}
	printf("\n");
	//打印偶数
	for (i = 31; i >= 1; i -= 2) {
		printf("%d", (n>>i) & 1);
	}
	
}

int main() {
	int num = 0;
	scanf("%d", &num);
	print(num);
	return 0;
} 

好了今天关于二进制的练习就到这里了,我们下期再见

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于二进制的练习 的相关文章

  • 【CVE-2021-3156】linux sudo提权复现及补丁修复

    前言 今天安全圈都在刷屏 CVE 2021 3156 这个漏洞 由于这是一个缓冲区溢出漏洞 通用性比较强 因此也跟风实验一下 详细复现及修复过程如下 一 实验环境 操作系统 kali linux 2020 1b 1 adduser命令新建一
  • 【深度学习】生成对抗网络

    下文以图片作为数据举例介绍 生成网络 生成器 gt 以假乱真 生成网络的职责是把随机点模仿成与真实数据集相似的图片 这些随机点是从一个潜在空间中随机抽取的 它可以看作一个实现 点对点变换 的映射 而真实图像在图像空间中的分布十分复杂 简单的
  • 破解windows7系统密码

    theme smartblue 一 利用5次shift漏洞破解win7密码 1 1 漏洞 1 在未登录系统时 连续按5次shift键 弹出程序c windows system32 sethc exe 2 部分win7及win10系统在未进入
  • MAX232无RS232电平信号输出、MAX232/3232硬件设计电路、电荷泵电容、max3221电路

    调试MAX3221芯片过程中 经测试 电路的单片机的uart可以正常收发数据 可无论单片机怎么发送数据 max3221都没有输出RS232电平的信号 看了论坛上的留言 正常的RS232电路中 芯片 V V 引脚电压应该为一倍多将近两倍的Vc
  • 银行家算法例题

    银行家算法 Banker s Algorithm 是一个避免死锁 Deadlock 的著名算法 是由艾兹格 迪杰斯特拉在1965年为T H E系统设计的一种避免死锁产生的算法 它以银行借贷系统的分配策略为基础 判断并保证系统的安全运行 目录
  • 【PTA】乙级 前世档案

    前世档案 C语言 题干 大致思路 题干 大致思路 n个问题 m个玩家 所以共有2的次方种结果 对应第一个图中的树状图 先考虑一个玩家的回答 用s统计最后结果的序号 先让结果数num除以2 如果为y 则不做处理 如果为n 则令s num 依次

随机推荐

  • short s1 = 1;s1 =s1+1;有错而short s1 = 1; s1+=1正确,为何?

    s1 s1 1和s1 1是有区别的 s1 s1 1会错因为s1是short 而1是int 所以运算时会自动转换为int 再将int赋值给s1是需要强制转换 所以会错 JAVA规范上说e1 e2 实际上是 e1 T1 e1 e2 其中T1是e
  • STM32读取编码器数据(STM32-1)

    编码器 encoder 是将信号或数据进行编制 转换为可用以通讯 传输和存储的信号形式的设备 按照外形可以分为实心轴和空心轴 按照工作原理编码器可分为增量式和绝对式两类 增量式编码器是将位移转换成周期性的电信号 再把这个电信号转变成计数脉冲
  • 补码的基础知识

    数在计算机中如何表示 举例来说 8在计算机中表示为二进制的1000 那么 8怎么表示呢 很容易想到 可以将一个二进制位 bit 专门规定为符号位 它等于0时就表示正数 等于1时就表示负数 比如 在8位机中 规定每个字节的最高位为符号位 那么
  • 使用TensorFlow实现LSTM

    使用TensorFlow实现LSTM 使用Cell实现 以Cell方式实现LSTM import os import numpy as np import tensorflow as tf from tensorflow import ke
  • Ubuntu 配置第三方动态库的系统环境变量

    环境 ubuntu16 04 Qt5 7 1 简述 将第三方动态库配置到系统环境变量中 便于使用 步骤 1 将第三方动态库的头文件及 so 文件拷贝到桌面 RSAInclude文件夹 lib文件夹 2 进入桌面文件夹 打开命令框 3 输入命
  • PHP上传Excel-xls-xlsx

    PHP上传Excel xls格式和xlsx格式 PHPExcle插件 引入插件 require once assets PHPExcel 1 8 Classes PHPExcel php 视图层代码
  • 安装TomCat的艰辛历程

    学习Java的初级阶段 是个充满无奈与呵呵的时间 就安装一个TomCat我就安装了一晚上 还没有成功 所以我给我的 捉猫泪史 写个传 以免后来者重蹈覆辙 首先 安装TomCat之前 先将Java环境搭好 就是下载并安装Java develo
  • Porter-Duff compositing rules

    1984 年 7 月 计算机图形 杂志 18 期 253 259 页 刊登了Porter Thomas 和 Duff Tom 的论文 Compositing Digital Ima ges 文中讲述了12个合成规则 这些规则都是基于一些简单
  • Windows编程基础--第12节 MFC之树控件CTreeCtrl

    树形控件 Tree Control 用来显示一系列项目的层次关系 最典型的例子是显示磁盘上的文件与文件夹 如果有子项目的话 单击树形控件中的项目可以展开或者收缩其子项目 MFC提供了CTreeCtrl类进行支持 树控件在windows程序中
  • 如何评价2023美赛春季赛YZ题加赛 大学生数学建模

    作为之前数模国奖美赛F的选手 这次得空会更新下今年美赛相关的免费思路 并给出直播答疑 欢迎蹲坑 欢迎一起交流 将在本帖更新2023美国大学生数学建模数模美赛各个赛题思路 大家可以点赞收藏 一 参赛报名 组队参赛 每队人数3人 专业不限 二
  • tf.name_scope和tf.variable_scope的用法

    文章目录 tf get variable 和 tf variable tf get variable 和 tf variable scope tf variable scope 和 tf name scope tf get variable
  • java 异常 错误_有关JAVA异常和错误(ERROR)的处理

    异常的处理主要包括捕获异常 程序流程的跳转和异常处理语句块的定义等 当一个异常被抛出时 应该有专门的语句来捕获这个被抛出的异常对象 这个过程被称为捕获异常 当一个异常类的对象被捕获后 用户程序就会发生流程的跳转 系统中止当前的流程而跳转至专
  • 【毕设选题】最新51单片机毕业设计项目集合 - 500例

    文章目录 1前言 2 STM32 毕设课题 3 如何选题 3 1 不要给自己挖坑 3 2 难度把控 3 3 如何命名题目 4 最后 1前言 更新单片机嵌入式选题后 不少学弟学妹催学长更新STM32和C51选题系列 感谢大家的认可 来啦 以下
  • Java对文件的基本操作(查找、读取)

    1 读取目录下的所有文件 隐藏的文件一网打尽 快速定位要找的那个文件 查询路径下的所有文件 param path 路径 private static void find String path File file new File path
  • 使用DatagramSocket发送、接收数据(1)

    Java使用DatagramSocket代表UDP协议的Socket DatagramSocket本身只是码头 不维护状态 不能产生IO流 它的唯一作用就是接收和发送数据报 Java使用DatagramPacket来代表数据报 Datagr
  • 给 Typora 改个背景颜色

    因为白色 在多云天气的时候 看上去有的扎眼 所以就想修改一下颜色 但本地的主题 不好看 所以就想简简单单换一个颜色 网上有很多 自定义主题的文章 我懒 只想改背景颜色 不想弄那么多的操作 换成这种颜色 就是好看 哈哈哈 操作 在 typor
  • 清华大学LightGrad-TTS,且流式实现

    论文链接 https arxiv org abs 2308 16569 代码地址 https github com thuhcsi LightGrad 数据支持 针对BZNSYP和LJSpeech提供训练脚本 针对Grad TTS提出两个问
  • stm32外部中断

    目录 1 STM32的外部中断线 2 NVIC嵌套向量中断器 3 外部中断 事件控制器 EXTI 4 STM32CubeMX配置外部中断 1 外部中断是什么 想象一个场景 你在家里玩游戏 这时候突然来电话了 这时你会停止玩游戏去接电话 电话
  • 开源|携程机票 App KMM 跨端 KV 存储库 MMKV-Kotlin

    作者简介 禹昂 携程移动端资深工程师 专注于 Kotlin 移动端跨平台领域 Kotlin 中文社区核心成员 图书 Kotlin 编程实践 译者 一 背景 携程机票移动端研发团队自 2021 年始就一直在移动端实践 Kotlin Multi
  • 关于二进制的练习

    前言 一 二题为牛客网练习 都有题目链接 文章目录 一 两个整数二进制位不同个数 二 输入一个整数 n 输出该数32位二进制表示中1的个数 其中负数用补码表示 三 获取一个整数二进制序列中所有的偶数位和奇数位 分别打印出二进制序列 一 两个