关于位操作符的实际应用<C语言>

news/2024/10/21 6:19:47/
前言

        位操作符在C语言初学阶段相对其他操作符来说,是一种难度比较大的操作符,且运用较少的一类操作符,但是位操作符并不是“一无是处”,合理运用的位操作符,在某些场景下可以优化算法,提高代码的执行效率,存在即合理。

下面给出位操作符的实际运用实例:

^操作符

1.不能创建临时变量(第三个变量),实现两个整数的交换。

        ^的操作符的特点:

        ①0^x=x    ②x^x=0

//不允许创建临时变量,交换两个整数的内容
#include<stdio.h>
int main() {int a = 2;int b = 3;printf("打印前%d %d\n", a, b);a = a ^ b;b = a ^ b;a = a ^ b;printf("打印后%d %d", a, b);return 0;
}

运行结果:

 &、>>操作符

2.求一个整数存储在内存中的二进制1的个数。

        &操作符特点,n&1,就能得到最后一个二进制位是否为1.

//2.求一个整数存储在内存中的二进制1的个数。
#include<stdio.h>
int main() {int n, i, count=0;scanf("%d", &n);for (i = 0; i < 32; i++) {if ((n >> i) & 1 == 1)count++;}printf("%d",count);return 0;
}

多组输入运行结果:

 |、~、<<操作符

 3.一个数的第n位二进制位置0,或置1。

        基本思想:置1,a|=a<<(n-1),

                          置0,a&=~(a<<(n-1))

#include<stdio.h>
int main() {int a, n, j;scanf("%d %d", &a, &n);//假定输入13 5//13的二进制序列:00000000000000000000000000001101a |= (1 << (n - 1));//将第5位置为1后:00000000000000000000000000011101printf("%d\n", a);a &= ~(1 << (n - 1));//将第5位再置为0:00000000000000000000000000001101printf("%d\n", a);return 0;
}

运行结果:


http://www.ppmy.cn/news/1458711.html

相关文章

tftp 服务部署

这个服务挺简单的&#xff0c;但是今天用到了&#xff0c;还是写一下把 简单文件传输协议&#xff08;Trivial File Transfer Protocol&#xff0c;TFTP&#xff09;是一种基于 UDP 协议在客户端 和服务器之间进行简单文件传输的协议。顾名思义&#xff0c;它提供不复杂、开销不…

【Redis7】10大数据类型之Set类型

文章目录 1.Set类型2.常用命令&#xff1a;3.示例3.1 SADD,SMEMBERS和SISMEMBER3.2 SREM和SCARD3.3 SRANDMEMBER和SPOP3.4 SMOVE 4.集合运算相关命令4.1 集合交集 (SINTER)4.2 集合并集 (SUNION)4.3 集合差集 (SDIFF)4.4 Redis7新命令sintercard 1.Set类型 Redis的Set类型是一…

如何使用ArcGIS Pro进行选房分析

无论是研究城市规划布局还是寻找理想的住房&#xff0c;都需要综合考虑购物、医疗、教育和休闲等多方面因素&#xff0c;此时我们的GIS软件就可以派上用场了&#xff0c;这里为大家介绍一下如何使用 ArcGIS Pro 进行选房分析&#xff0c;希望能对你有所帮助。 数据来源 教程所…

【Java】还不会数组?一文万字全搞定

前言&#xff1a;前面两章我们详细讲解了Java基本程序设计结构中的基本知识&#xff0c;&#xff0c;包括&#xff1a;一个简单的Java应用&#xff0c;注释&#xff0c;数据类型&#xff0c;变量与常量&#xff0c;运算符&#xff0c;字符串&#xff0c;输入输出&#xff0c;控…

1707jsp电影视频网站系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 校园商城派送系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用web模式&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数…

SQL注入基础-5

一、Access注入 1、asp网站常用数据库&#xff1a;access&#xff0c;mssql 2、access数据库 (1)没有库&#xff0c;没有端口 (2)结构&#xff1a;表--》字段--》数据 3、注入流程&#xff1a; 判断类型判断表名&#xff1a;遍历、爆破判断列名判断列名下的数据长度查出数…

MySQL-数据结构(索引)选择的合理性

MySQL衡量查询效率的标准就是磁盘IO次数&#xff08;对索引的使用效率至关重要&#xff09;加速查找速度的数据结构&#xff0c;基本分为以下两类&#xff1a; 树&#xff0c;增删改查的平均时间复杂度都是O(log2N)哈希&#xff08;hash&#xff09;&#xff0c;增删改查的平均…

HFSS学习-day2-T形波导的优化设计

入门实例–T形波导的内场分析和优化设计 HFSS--此实例优化设计 优化设计要求1. 定义输出变量Power31、Power21、和Power11&#xff0c;表示Port3、Port2、Port1的输出功率2.参数扫描分析添加扫描变量和输出变量进行一个小设置添加输出变量进行扫描分析 3. 优化设计&#xff0c…