C语言例3-28:位逻辑运算的例子

一、计算机中数值的表示

1. 二进制位与字节

  • 计算机的内存是由许多称为字节的单元组成的。
  • 1字节由8个二进制位(bit)组成。
  • 每个二进制位的值为0或1。
  • 最右端的一位称为“最低位”,编号为0;最左端的一位称为“最高位”,编号为7;而且从最低位到最高位依次编号。

2. 数值的原码表示

  • 数值的原码表示是指将最高位作为符号位(0表示正数,1表示负数),其余各位代表数值本身的绝对值(以二进制形式表示)的表示形式。
  • 为简化描述,本节约定用1字节表示一个整数。
    • 如:+9的原码是
      00001001

    • -9的原码是
      10001001

3. 数值的反码表示

  • 正数的反码与原码相同
    • +9的反码:0000 1001
  • 负数的反码的符号位为1,其余各位为该数绝对值的原码按位取反(1变0、0变1)。
    • -9的反码:1111 0110

4. 数值的补码表示

  • 正数的补码与原码相同
    • +9的补码:0000 1001
  • 负数的补码的符号位为1,其余各位为该数绝对值的原码按位取反;然后在末位加1。(补码等于反码+1)
    • -9的补码:1111 0111

5.已知一个数的补码,求原码的操作分为两种情况:

  • 如果补码的符号位为“0” ,表示是一个正数,所以补码就是该数的原码。
  • 如果补码的符号位为“1” ,表示是一个正数,求原码的操作可以是符号位不变,其余各位取反,然后再在末位加1。
    • 例:已知补码为1111 1001,则原码是1000 0111(-7)

二、位逻辑运算符

1. 按位非(~),按位与(&),按位或(|),按位异或(^)

2. 运算对象只能是整型或字符型数据。

3.除按位非为单目运算符外,其余均为双目运算符。

4. 参与位逻辑运算时,运算对象以二进制形式进行相应的按位运算。

5. 双目位逻辑运算符的运算规则

aba & ba | ba ^ b
00000
01011
10011
11110

6. 位逻辑运算符的优先级:

  • ~ 优先于 双目算术运算符 优先于 关系运算符 优先于 & 优先于 ^ 优先于 | 优先于 双目逻辑运算符
  • ~ 与单目逻辑运算符、自增、自减、单目算术运算符、长度运算符的优先级相同,结合性是从右至左

三、位逻辑运算的例子

1. 表达式 3 & 9

         0000 0011

   &    0000 1001

        0000 0001

2. 表达式 3 | 9

         0000 0011

   |    0000 1001

        0000 1011

3. 表达式 3 ^ 9

         0000 0011

   ^    0000 1001

        0000 1010

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

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

相关文章

重装系统后鼠标识别不了咋办

不知道大家在重装系统时,有没有遇到过系统重装完成后,鼠标不能使用的情况。在这种情况下,我们要怎么操作电脑解决这个问题呢?今天就跟大家分享重装系统后鼠标识别不了咋办。 一、主板没有设置兼容usb 在重装系统时,如果主板没有设置兼容usb,就会出现鼠标使用不了的现象。…

模拟计算机和数字计算机

抽象符号只是对现实世界的描述而非模拟,这种描述的还原依赖于人脑对自然世界的物理共识,当你说 “这是山” 这三个简单的字时,听者会还原出一座大山的具象… 人们早在 70 多年前就习惯了以二进制 0 和 1 为基础的数字逻辑,开启了数…

【Docker】-- 如何安装docker

一、安装docker 首先要安装一个yum工具 yum install -y yum-utils 安装成功后,执行命令,配置Docker的yum源: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 最后,执行命令&#x…

XJLS-84/620静态双位置继电器 DC220V 带柜内板前接线底座 JOSEF约瑟

XJLS-84系列静态双位置继电器 系列型号: XJLS-84/023A静态双位置继电器; XJLS-84/132A静态双位置继电器; XJLS-84/203静态双位置继电器; XJLS-84/222A静态双位置继电器; XJLS-84/312A静态双位置继电器; XJLS-84/502静态双位置继电器; XJLS-84/440静态双位置继电器; …

vue3 elementPlus 设置树形报错时 setCheckedKeys of undefined

第一种解决方法 nextTick(async ()>{ treeRef.value!.setCheckedKeys(rows.permissionIds, false) }) 第一种解决方法 onMounted(async () > { treeRef.value!.setCheckedKeys([3], false) })

基于Springboot的高校竞赛管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的高校竞赛管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

Chart-based Reasoning: Transferring Capabilities from LLMs to VLMs

Chart-based Reasoning: Transferring Capabilities from LLMs to VLMs 相关链接:arXiv 关键字:Vision-language models、ChartQA、multimodal reasoning、fine-tuning、synthetic data 摘要 本文提出了一种技术,将大型语言模型(…

免费录音软件大集合,轻松录制高品质音频

“有没有免费的录音软件推荐呀?最近我在制作一个关于环境保护的宣传片,需要录制一些大自然的声音。但是我发现自己并不擅长录音,甚至不知道如何开始。希望有人能推荐一些免费且易用的录音软件,感激不尽!” 在当今信息…

Grid数据增强算法

算法原理 class Grid(object):def __init__(self, d1, d2, rotate1, ratio0.5, mode0, prob0.8):self.d1 d1self.d2 d2self.rotate rotateself.ratio ratioself.mode modeself.st_prob self.prob probdef set_prob(self, epoch, max_epoch):self.prob self.st_prob …

基于深度学习的场景文本检测

CTPN 简介: 基于目标检测方法的文本检测模型,在Faster RCNN的基础上进行了改进,并结合双向LSTM增强了序列提取特征,通过anchor和gt的设计将文本检测任务转化为一连串小尺度文本框的检测。 解决问题: 文本长短不一&…

全球首位AI程序员是否会抢走程序员饭碗

目录 1.概述 2.AI程序员的优势分析 2.1.减少人为错误 2.2.提高开发效率 2.3.代码质量提高 ​​​​​​​2.4.智能调试和测试 ​​​​​​​2.5.需求理解和管理 ​​​​​​​2.6.优化项目管理 ​​​​​​​2.7.知识共享与复用 ​​​​​​​2.8.小结 3.AI程序…

ubuntu 20.04 Kimera semantic 运行记录

Ubuntu20.04 Kimera Semantic运行记录 Kimera VIO ROS 配置 MIT Kimera-VIO-ROS 安装 mkdir -p Kimera_ws/src cd Kimera_ws catkin init catkin config --cmake-args -DCMAKE_BUILD_TYPERelease -DGTSAM_TANGENT_PREINTEGRATIONOFF catkin config --merge-develcd src git…

【蓝桥杯】RMQ(Range Minimum/Maximum Query)

一.概述 RMQ问题,是求区间最大值或最小值,即范围最值问题。 暴力解法是对每个询问区间循环求解,设区间长度n,询问次数m,则复杂度是O ( nm )。 一般还可以使用线段树求解,复杂度是O(mlogn)。 但还有一种…

论文解读—— 基于边缘梯度方向插值和 Zernike 矩的亚像素边缘检测

论文:《 Subpixel edge detection based on edge gradient directional interpolation and Zernike moment》 地址: http://www.dpi-proceedings.com/index.php/dtcse/article/view/24488 摘要 在本文中,我们提出了一种基于边缘梯度方向插值…

PowerShell 一键更改远程桌面端口

前言 提高工作效率,安全性和规范化,最终实现一键更改Windows 远程桌面端口 前提条件 开启wmi,配置网卡,参考 一键更改远程桌面端口自动化脚本 默认端口3389变更后的端口3390win+r mstsc YOU_ip常规更改的连接方式win+r mstsc YOU_ip:3390需要恢复到原来的端口3390更改成3…

阿里云2025届春招实习生招聘

投递时间:2024年2月1日-2026年3月1日 岗位职责 负责大型客户“上云”,"用云"技术平台开发。 开发云迁移运维技术工具,帮助阿里云服务团队&&企业客户和服务商自主、高效的完成云迁移。 开发云运维技术工具,帮助…

【java】java环境变量分类

测试代码&#xff1a; public class TestSys {public static void main(String[] args) {/*** 获取所有的系统环境变量*/Map<String, String> map System.getenv();map.forEach((key, value) -> System.out.printf("env&#xff1a;key:%s->value:%s%n"…

leetcode1969--数组元素的最小非零乘积

1. 题意 给定一个非零的二进制位排列&#xff1b; 允许交换其中两个数的二进制位任意次。 求交换后得到数组的最小非零乘积。 如: p 3 a [ 001 010 011 100 101 110 111 ] p3\\ a[001\ 010\ 011\ 100\ 101\ 110\ 111]\\ p3a[001 010 011 100 101 110 111] 将010与101交换…

CPU的Cache和MESI协议

前言 大家好我是jiantaoyab&#xff0c;这是我所总结作为学习的笔记第20篇&#xff0c;在这里分享给大家&#xff0c;这篇文章讲CPU的Cache和MESI协议。 为什么需要高速缓存&#xff1f; 通过图片可以清晰的看到&#xff0c;随着时间的发展CPU的性能差距和内存越来越大&#…

Js 原型和原型链

在 JavaScript 中&#xff0c;每个对象都有一个特殊的内部属性&#xff08;[[Prototype]]&#xff09;&#xff0c;它就是对于其他对象的引用。这个其他对象被称为该对象的“原型”。 原型链是由原型对象形成的链状结构。当试图访问一个对象的属性时&#xff0c;如果对象自身没…