第十一章:位运算符与位运算

文章目录

  • 第十一章:位运算符与位运算
        • 1.按位与运算:&
        • 2.按位或运算:|
        • 3.按位异或运算:^
        • 4.取反运算符:~
        • 5.左移运算符:<<
        • 6.右移运算符:>>
        • 总结

第十一章:位运算符与位运算

位运算将表达式或变量的值看成二进制数,对于它的每个二进制位逐位进行运算,所以不能用于float、double、long double、void或更复杂的数据类型,即只能用于整型、字符型数据等。

在这里插入图片描述

1.按位与运算:&
  • 作用:位逻辑与运算,参与运算的两个操作数按二进制位进行逻辑与运算

  • 运算规律:全1为1

注意:参与运算的两运算数据先转换成补码形式,再进行位运算

  • 用途:
    • 清零:找到合适的二进制数,原来的数为1的位,新数中相应的位为0.
    • 取一个数中的某些指定位
      • 一个short a ,若取高字节,则与0177400进行位与运算,特点:高字节全为1,低字节全为0
      • 若取低字节,则与0377进行位与运算,特点:高字节全为0,低字节全为1
2.按位或运算:|
  • 作用:将两个操作数对应的每一位分别进行逻辑或操作
  • 规律:全0为0
0|0=0,0|1=1,1|0=1,1|1=1
3.按位异或运算:^
  • 作用:将两个操作数对应的每一位进行异或操作
  • 规则:两个数对应的二进制位__相同为0,相异为1__
0^0=0  0^1=1  1^0=1  1^1=1
  • 用途:

    • 使特定位翻转:一个数若想使其某些特定位翻转,则与一个数相异或,使该数对应位全为1
    若oxfa位翻转11111010
    (^) 00001111
    --> 11110101
    
    • 与0相^,保留原值
    x0x35^0   00110101
    (^)00000000
    -->00110101
    

    与0相保留原位,与1相翻转

    • 用来清0:一个整数与其自身进行异或运算,结果必为0, a^a=0

    • 交换两个值,不用临时变量

    a=a^b;
    b=b^a;
    a=a^b;a=01              b=10               a=11b=10              a=11               b=01
    (a^b)  a=11       (b^a)  b=01        (a^b)  a=10
    
4.取反运算符:~
  • 作用:用来求表达式或变量的反码
  • 运算规律:为单目运算符,将一个二进制数按位取反,即将1变为0,将0变为1
  • 应用:增加程序的移植性
eg:
若将一个变量x的低四位清零,对于不同数据的变量应选用不同的操作数,即
对于char x,y  应写作:y=x&0xf0

注意:位运算符除了~外,均为双目运算符,要求两侧各有一个一个运算量

5.左移运算符:<<
  • 作用:将一个数的二进制位全部左移若干位

  • 左移1相当于该数×2

  • 左移高位舍弃0:相当于乘2的n次幂

6.右移运算符:>>
  • 作用:将一个数的二进制位全部右移若干位
  • 规则:

在这里插入图片描述

总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/775493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

免费SSL证书和付费SSL证书的区别点

背景&#xff1a; 在了解免费SSL证书和付费SSL证书的区别之前&#xff0c;先带大家了解一下SSL证书的概念和作用。 SSL证书的概念&#xff1a; SSL证书就是基于http超文本传输协议的延伸&#xff0c;在http访问的基础上增加了一个文本传输加密的协议&#xff0c;由于http是明…

二分练习题——妮妮的月饼工厂

妮妮的月饼工厂 题目分析 这里出现了“最高高度”&#xff0c;那么可以考虑用二分去做。 第一阶段二段性分析 希望月饼的高度最大&#xff0c;而月饼的高度要满足一个条件&#xff0c;就是按照该高度切出来的月饼的块数应该大于等于K块。那么现在就是满足条件的最大值&…

【爬虫基础】第6讲 opener的使用

在爬虫中&#xff0c;opener是一个用来发送HTTP请求的对象。它可以用来模拟浏览器发送请求&#xff0c;包括设置请求头、处理Cookie等操作。使用opener可以实现一些高级功能&#xff0c;如模拟登录、处理验证码等。 方法1&#xff1a; from urllib.request import Request,bu…

ARMday7作业

实现三个按键的中断&#xff0c;现象和代码 do_ipr.c #include "stm32mp1xx_gic.h" #include "stm32mp1xx_exti.h" extern void printf(const char *fmt, ...); unsigned int i 0; void do_irq(void) {//获取要处理的中断的中断号unsigned int irqnoGI…

扩展wordpress回收站功能

1、自定义WordPress回收站删除时间 WordPress回收站里的内容&#xff0c;默认会在30天之后删除&#xff0c;逻辑非常简单&#xff0c;否则WordPress回收站会越来越臃肿。当然&#xff0c;如果你觉得30天太长&#xff0c;我们也可以自定义内容存放的时间&#xff0c;我们需要把…

StableDiffusion Web UI开启FP8,极大节约显存

升级了Pytorch后&#xff0c;StableDiffusion最新版本就可以有使用FP8的基础了&#xff0c;因此把秋叶的LINUX包也升级到了最新的版本。 升级Pytorch参考我的升级记录&#xff1a; ComfyUI SDWebUI升级pytorch随记-CSDN博客 然后下一步就是如何开启FP8了。与ComfyUI不同&…

Spring boot2.X 配置https

背景 最近项目组说要将 http 升级成 https 访问&#xff0c;证书也给到我们这边了&#xff0c;当然我们这边用的是个二级域名&#xff0c;采用的是通配符访问的方式&#xff0c;比如一级域名是这样&#xff08;com.chinaunicom.cn&#xff09;&#xff0c;我们的则是&#xff0…

【安全用电管理系统的应用如何保证用电安全】Acrel-6000安科瑞智慧安全用电解决方案

政策背景 国家部委 ※2017年5月3日国务院安委会召开电气火灾综合治理工作视频会议&#xff0c;决定在全国范围内组织开展为期3年的电气火灾综合治理工作。 公安部领导 ※公安部副部长李伟强调&#xff1a;向科技要战斗力&#xff0c;加快推进“智慧消防”建设不断提升火灾防控…

区块链食品溯源案例实现(二)

引言 随着前端界面的完成&#xff0c;我们接下来需要编写后端代码来与区块链网络进行交互。后端将负责处理前端发送的请求&#xff0c;调用智能合约的方法获取食品溯源信息&#xff0c;并将结果返回给前端。 通过前后端的整合&#xff0c;我们可以构建一个食品溯源系统&#xf…

ArrayList和LinkedList有什么区别?

ArrayList和LinkedList的区别 ArrayList 和 LinkedList 是 Java 中常用的两种集合类&#xff0c;它们都实现了 List 接口&#xff0c;但在内部实现和性能上有一些区别。 内部实现&#xff1a; ArrayList 使用数组实现&#xff0c;它的元素在内存中是连续存储的&#xff0c;每…

lua 获取指定路径下的所有文件夹

一、io.popen 函数获取 io.popen 是 Lua 中的一个函数&#xff0c;它允许你执行一个外部命令并将命令的输出作为流处理。如果你想在 Lua 中通过 io.popen 执行 dir 命令(linux 命令是ls )来获取指定文件夹下的所有文件及其路径&#xff0c;你可以构造一个适用于 Windows 环境下…

【C语言】linux内核pci_iomap

一、pci_iomap /** pci_iomap 是一个用于映射 PCI 设备的 BAR&#xff08;Base Address Register&#xff0c;基地址寄存器&#xff09;的函数。* 此函数返回指向内存映射 IO 的指针&#xff0c;用于直接访问 PCI 设备的内存或 I/O 空间。* * 参数:* dev - 指向pci_dev结构的指…

【微服务篇】深入理解资源隔离,限流,熔断原理(Hystrix、Resilience4j和Sentinel)

限流、降级和资源隔离是分布式系统设计中常用的三种技术手段&#xff0c;它们主要目的是增强系统的稳定性和可用性&#xff0c;尤其在高并发和不稳定网络环境下显得尤为重要 1.资源隔离的实现方式 资源隔离通常有两种主要的实现方式&#xff1a;线程池隔离和信号量隔离。 线…

JDK8的下载安装与环境变量配置教程

前言 官网下载&#xff1a;Java Archive Downloads - Java SE 8u211 and later 现在应该没人用32位的系统了吧&#xff0c;直接下载Windows x64 Installer jdk-8u391-windows-x64.exe 一、安装JDK 1. 打开jdk-8u391-windows-x64.exe 2. 直接下一步 3. 这个地方不要动他&…

servlet开发详解

一、什么是servlet&#xff0c;干什么用的&#xff1f;&#xff1f;&#xff1f; tomcat作为一个web服务器&#xff0c;也称作servlet容器。servlet只有放在web服务器中才能运行&#xff0c;不能独立运行。tomcat这个容器要做三件事&#xff1a;接收请求、处理请求和响应请求。…

从根本上优雅地解决 VSCode 中的 Python 模块导入问题

整体概述&#xff1a; 在我尝试运行 test_deal_file.py 时&#xff0c;我遇到了一个 ModuleNotFoundError 错误&#xff0c;Python告诉我找不到名为 controllers 的模块。这意味着我无法从 deal_file.py 中导入 read_excel 函数。 为了解决这个问题&#xff0c;我尝试了几种方法…

【ML】类神经网络训练不起来怎么办 5

【ML】类神经网络训练不起来怎么办 5 1. Saddle Point V.S. Local Minima(局部最小值 与 鞍点)2. Tips for training: Batch and Momentum(批次与 动量)2.1 Tips for training: Batch and Momentum2.2 参考文献:2.3 Gradient Descent2.4 Concluding Remarks(前面三讲)3.…

【QT】:基本框架

基本框架 一.创建程序二.初识函数1.main2.Widget.h3.Wight.cpp4.Wight.ui5.文件名.pro 三.生成的中间文件 本系列的Qt均使用Qt Creator进行程序编写。 一.创建程序 二.初识函数 1.main 2.Widget.h 3.Wight.cpp 4.Wight.ui 此时再点击编辑&#xff0c;就看到了ui文件的本体了。…

Django query

QuerySet API 参考 该文档描述了 QuerySet API 的细节。它是建立在 模型 和 数据库查询 指南的材料基础上的&#xff0c;因此&#xff0c;在阅读这篇文档之前&#xff0c;你可能需要阅读和理解这些文档。 在整个参考资料中&#xff0c;我们将使用在 数据库查询指南 中提出的 示…

数仓建设实践——58用户画像数仓建设

目录 一、数据仓库&用户画像简介 1.1 数据仓库简介 1.2 数据仓库的价值 1.3 用户画像简介 1.4 用户画像—标签体系 二、用户画像数仓建设过程 2.1 画像数仓—背景&现状 2.2 画像数仓—整体架构 2.3 画像数仓—研发流程 2.4 画像数仓—指标定义 2.5 画像数仓…