C语言操作符涉及的二进制序列问题

【C语言】C语言中基础操作符详细讲解 浅总结一下操作符! 阅读详情

今天分享几个用C语言操作符解决的二进制序列问题

  1. 写一个函数返回参数二进制中 1 的个数
    比如: 15 0000 1111 4 个 1
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>

int count_one_bits(unsigned int val)
{
	int count = 0;
	for (int i = 1; i <= 32; i++)         //从右边的低位开始一位一位的将该二进制序列右移,然后和1做&运算就得到该位的数字。
	{
		if (((val >> (i - 1)) & 1) == 1)  //判断该位数字是否为1
			count++;
	}
	return count;
}
int main()
{
	unsigned int n;
	printf("请输入二进制序列:\n");
	scanf("%u",&n);
	printf("该二进制序列中1的个数为:%d个\n",count_one_bits(n));
	system("pause");
	return 0;
}

利用了1和任何数做&运算还是任何数的性质。

  1. 获取一个数二进制序列中所有的偶数位和奇数位,
    分别输出二进制序列。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>

void print(int n)
{//获取奇数位
	for (int i = 31; i >= 1; i-=2)       //从最高位开始右移,隔两位移一次
	{
		printf("%d ", (n >> i) & 1);
	}
	printf("\n");
  //获取偶数位
	for (int i = 30; i >= 0; i-=2)       //从最高位开始右移,隔两位移一次
	{
		printf("%d ", (n >> i) & 1);
	}
	printf("\n");
}
int main()
{
	int n;
	printf("请输入二进制序列:\n");
	scanf("%d",&n);
	print(n);
	system("pause");
	return 0;
}
  1. 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
    输入例子:
    1999 2299
    输出例子:7
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>

int get_difbits(int m,int n)
{
	int ret = m^n;                 //先将两个数的异或结果存到ret变量中,因为异或原则是“相同为0,不同为1”!
	int cnt = 0;
	for (int i = 1; i <= 32; i++)
	{
		if (((ret >> (i - 1)) & 1) == 1)    //再将次结果的每一位都和1做&运算看,有多少个1,就代表有多少个不同位。
			cnt++;
	}
	return cnt;
}
int main()
{
	int a, b;
	printf("请输入两个整数:\n");
	scanf("%d %d",&a,&b);
	printf("一共有%d个bit位不同\n",get_difbits(a, b));
	system("pause");
	return 0;
}
    所以说C语言中有不少操作符都是比较实用的,往往可以用他们更方便,更巧妙的解决一些问题。掌握这些操作符还是最基础的要求!
C语言总结八:操作符详细总结 学习C语言中的各种操作符的使用方法及使用场景,可以让我们对于底层编译器的运算逻辑和过程更加清楚,同时能够减少开发中出现的小错误。本篇博客详细总结C语言中的操作符的使用方法、适用场景、及注意事项,学完本篇博客,可以让我们对于各种运算更加清晰,这也是开发人员的基本功。 阅读详情

相关推荐

二进制算术编解码

用matlab实现二进制算术编解码,字符码长可自定义

序列类型操作符(关系、连接、重复…

一、成员的关系操作符       [not] in :操作  对象 [not] in序列 二、连接操作符       + :[序列1] + [序列2]       说明:一般推荐使用列表类型的 extend()方法来连接内容节约内存;如果不能依赖于可变对象的那些没有返回值的内建方法来完成的时候,连接操作符还是很方便。 三、重复操作符       * :[序列] * [次数]      

Paul_roux 890

LeGo-LOAM源码篇:源码分析(3)

mapOptmization.cpp,主要内容包括回环检测、scan-to-map位姿优化、因子图。

slamml 1382

JAVA对字符串的压缩与解压缩

import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; import java.u...

weixin_33758863的博客 293

共享单车需求预测问题:建模篇

机器学习训练营——机器学习爱好者的自由交流空间(qq群号:696721295) 在上一篇里,我们使用可视化的方法分析了“共享单车”的数据集,理解了特征(变量)之间的关系。我们将在本篇建立几个模型预测单车的需求量,并比较它们的预测效果。 随机森林填充法 首先,导入必需的库、训练集和检验集。 import pylab import calendar import numpy as np impor...

wong2016的博客 1万+

CREO5.0二次开发+VS2019配置详解

CREO5.0+VS2019配置更新 一、CREO5.0 配置 二、Visual Studio 2019配置 新建MFC DLL项目 文件>新建>项目,选择MFC DLL,如下图所示 项目名称CREO1 2、配置设置 打开项目属性: 配置资源管理器设置: 设置包含目录、库目录(根据自己CREO的安装位置来设置): 包含目录: 库目录: 预处理器设置: 把下面文字复...

liuyi2517的博客 1万+

文档即编码(四):编码的实质-表述与合作

   本章为对之前的章节进行一个小结,并对后续展开进行一个铺垫。       在平时的编码中,都要求按照所谓的代码规范、开发规范、代码提交规范,并会编写相应的手册以及通过代码扫描等手段防止有违规的现象出现,并且有些公司还会通过测试用例、代码Review等手段,保证其编码的质量。     当然,以上所述的方式、方法,都是通过长年的经验积累而成,并且根据各个公司不同的情况而有所调整。为达到代码质量...

szlwin的专栏 371

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的商品识别系统(深度学习+UI界面+训练数据集+Python代码)

随着新零售和智能仓储的快速发展,商品识别技术成为计算机视觉领域的重要研究方向。本文详细介绍了基于YOLO系列算法的商品识别系统的完整实现方案,涵盖算法原理、数据集构建、模型训练、系统集成和可视化界面开发。通过对比YOLOv5到YOLOv8各版本性能差异,我们构建了一个高效、准确且用户友好的商品识别系统,并提供完整的代码实现。

YOLO 286

聊聊字典编码

最近由于课程设计需要做解压缩算法 特此来考察字典编码 1 导论 许多场合,开始时不知道要编码数据的统计特性,也不一定允许你事先知道它们的统计特性。因此,人们提出了许许多多的数据压缩方法,企图用来对这些数据进行压缩编码,在实际编码过程中以尽可能获得最大的压缩比。这些技术统称为通用编码技术。 字典编码(dictionary encoding)技术(以下简称DE)就是属于这一类,这种技...

weixin_33928467的博客 234

机器人中的数值优化(二十一)—— 伴随灵敏度分析、线性方程组求解器的分类和特点、优化软件

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例

慕羽★的博客 4205

EtherCAT主站SOEM -- 19 --Qt-Soem通过CSP模式(周期同步位置模式)控制一个电机转圈圈

以上就是EtherCAT主站SOEM – 19 --Qt-Soem通过CSP模式(周期同步位置模式)控制一个电机转圈圈的内容。有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。创作不容,如果文档对您有帮助,记得给个赞。

常驻客栈的博客--嵌入式EtherCAT 1996

【C语言】操作符----详解

在这个博客中,您将了解到C语言中各种操作符的详细解释和实用示例。无论您是编程新手还是经验丰富的开发者,这个博客都将为您提供宝贵的知识和实践经验。

深入解析C/C++编程技巧,带你探索高效开发之路 1789

Unity引擎开发:复杂动作系统_动作捕捉数据的应用与整合

通过以上步骤,我们可以在Unity中有效地应用和整合动作捕捉数据,以实现更加真实和流畅的动画效果。从导入文件格式的选择,到预处理和优化,再到实时应用和调试验证,每一步都至关重要。希望本文能帮助你在Unity项目中更好地利用动作捕捉数据,提升动画质量和性能。

chenlz2007的博客 958

【C语言】玩转操作符——操作符的那些东西!

文章目录前言一、C语言中的操作符二、操作符详细介绍1.算术操作符2.移位操作符2.1移位操作符2.1.1左移操作符2.1.2右移操作符3、位操作符3.1位操作符的分类总结 前言 是否能很好的理解的操作符的意思,决定着我们能否很好的理解代码。在一些相对复杂的程序中,不能搞懂操作符,我们将一筹莫展。因此,本文耗费三天的准备才行文,希望对大家有帮助! 提示:以下是本篇文章正文内容 一、C语言中的操作符 C语言提供了以下的操作符(有的地方也称为运算符) 运算操作符 + ,-,*,/,%,++,– .

weixin_46913665的博客 3273

GPU 运维实战:H100/H800/B300 换卡与压测

(烧多久、看什么、什么算合格)。文末还给了一个能直接跑的验收判定脚本,三个真实场景的裁决输出都在。

老韩的Linux云计算架构师进阶之路 271

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

初始C语言——详细讲解操作符以及操作符的易错点

在上一章内,小编带领大家详细地学习了有关数组的相关内容,学习了一维数组和二维数组的创建与初始化一维数组和二维数组在内存中如何存储数组越界数组作为函数参数怎么办?而在这一章内,小编将要带领大家进行学习操作符的内容,大家从目录也不难看出这章内容也是很多,已经囊括了所有操作符,希望大家也能有耐心地将这一章看完。将真的变成假的,将假的变成真的。if(!a)return 0;在这一部分,小编详细地编写了有关操作符详解的一篇博客。

加油,考上985的研究生 3219

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C语言中的操作符:了解与实践

在C语言中,运算符是编写高效、正确代码的关键。了解C语言的运算符种类(如算术运算符、关系运算符、逻辑运算符等),有助于编写代。实践经验表明,熟练掌握C语言的运算符,对于提高编程能力和效率具有重要意义。 本文将简要介绍C语言中的运算符,并探讨如何在实践中运用这些运算符。通过学习本文,您将能够更好地理解C语言运算符的功能和用法,从而提高编程效率。 将运算符换为操作符

Bettysweetyaaa的博客 9746

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

C语言最全操作符详解,一文精通所有操作符!

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、除号“/”二、"%"除法取余数三、左移操作符“<<”和右移操作符“>>”1.左移操作符2.右移操作符四、按位与“&”五、按位或“|”六、按位异或“^”七、赋值操作符“=”和复合赋值操作符1.赋值操作符2.复合赋值操作符八、逻辑非“!”九、&取地址操作符和*解引用操作符十、sizeof操作符十一、按位取反操作符“~”十二、强制类型转换操作符 (类型)十三、双目操作符:逻辑与&&a

m0_57180439的博客 7538

c语言操作符(上)

c语言中对于操作符的讲解

@初阶牛的博客 3039

C语言-【移位操作符详解】

这篇文章主要介绍了C语言中移位操作符

yyzzzj0301的博客 5495

C语言操作符

文章目录1:算术操作符2:移位操作符(移动的是二进制序列中的补码)2.1:知识补充(原码,反码,补码与二进制)2.2:左移操作符(<<)2.2:右移操作符(>>)2.2.1:逻辑右移2.2.2:算术右移3:位操作符(运算用的是二进制位的补码)3.1:按位与操作符(&)3.2:按位或操作符(|)3.3:按位异或操作符(^)4.赋值操作符4.1:复合赋值符5:单目操作符5.1:逻辑反操作符(!)5.2:正值,负值操作符(+ -)5.3:取地址操作符和解引用操作符(& *)

ABWSO的博客 1909

C语言——操作符详解

这篇博客详细介绍了C语言的各种操作符

plj521的博客 1322

C语言基础之——操作符(上)

操作符

2303_78442132的博客 551

C语言初阶——操作符

在C语言中,算术操作符是用来执行基本数学运算的符号,包括加法、减法、乘法、除法以及取模(求余数)等。这种操作符有两个操作数,位于操作符两端的数字就是操作数,这种操作符也叫双目操作符。运行结果为:在计算机中执行算数运算一个不可避免的话题是操作精度问题,如果将一个浮点数和整数进行运算,结果将会是一个浮点数。浮点数可以表示小数部分而整数不可以,因此直接将一个浮点数的结果存储到整型变量中是不可行,这会导致数据丢失——浮点数的小数部分会直接被截断。

qq_55890817的博客 1718

操作符详解—c语言

目录1. 操作符分类:2. 算术操作符3. 移位操作符 3.1 左移操作符3.2 右移操作符4. 位操作符 5. 赋值操作符 6. 单目操作符6.1 单目操作符介绍 7. 关系操作符8. 逻辑操作符 9. 条件操作符 10. 逗号表达式 11. 下标引用、函数调用和结构成员 12. 表达式求值 12.1 隐式类型转换 12.2 算术转换 12.3 操作符的属性 2. 算术操作符 1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。 2. 对于 / 操作符如果两个操作数都为整数,

m0_63562631的博客 3230

【C语言】——详解操作符(上)

先要全面了解C语言中的操作符?看这篇文章就够啦!

yusjushd的博客 1355
上一篇: 递归问题集合
下一篇: C语言操作符总结
Python_programer
博客等级 码龄9年 25粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值