当前位置: 首页 > news >正文

C++中位运算符使用

&    与    只有都为1结果为1

 0 & 0 = 00 & 1 = 01 & 0 = 01 & 1 = 1

|   或   只要一个为1结果为1

0|0=0
0|1=1
1|0=1
1|1=1

^  异或  两个相同的数字为0,其余为1

0^0=0
1^0=1
0^1=1
1^1=0

~  取反   将进制位数进行取反

~1=-2  //0000  0001-->代表1//取反后  补码 1111  1110   最前面的1 代表这是负数。//输出时,先将补码 减 1 得 1111  1101-->这个数即为需要的反码//结果为--> 将 反码 符号位不变,其余位取反得  真正  输出的原码//1000  0010 --> -2~0=-1

1、计算机是以补码方式存储的是二进制    --->重点  重点  重点

1、1 正数的补码即原码  例如 1--》0000  0001 

1、2 负数的补码为原码取反加一得到  例如 -1 原码  1000 0001 

补码=原码取反+1  --》1111  1111   符号位不变(第一个数)。计算机存储的是这个数

--------------------------------------------------------------------------------------------------------------

但是负数输出时。将补码再取反(以上面为例) 得 0000  0000。

由于第一个数为0  系统认为这个是正数的补码。既这就是我们输出的数-->0

-------------------------------------------------------------------------------------------------------------

取反运算简便方法

-(a+1)   a可以代表正数  负数  零  

http://www.lryc.cn/news/152976.html

相关文章:

  • 微机原理 || 第2次测试:汇编指令(加减乘除运算,XOR,PUSH,POP,寻址方式,物理地址公式,状态标志位)(测试题+手写解析)
  • 人员闯入检测告警算法
  • python中super()用法
  • jmeter While控制器
  • 3D数字孪生技术助力港口全新升级,提供实时数据进行智能调度
  • Qt日历控件示例-QCalendarWidget
  • 函数式编程(四)Stream流使用
  • 区块链面临六大安全问题 安全测试方案研究迫在眉睫
  • K8S---kubelet TLS 启动引导
  • Android系统修改驱动固定USB摄像头节点绑定前后置摄像头
  • RT-Thread 内核移植
  • springboot中entity层、dto层、vo层通俗理解三者的区别
  • TypeScript_队列结构-链表
  • STM32G0 定时器PWM DMA输出驱动WS2812配置 LL库
  • 记录错误:Access denied for user ‘root‘@‘localhost‘ (using password:No) 解决方案
  • python爬虫实战(5)--获取小破站热榜
  • 单目标应用:基于麻雀搜索算法SSA的微电网优化调度MATLAB
  • C# easymodbus
  • HikariCP源码修改,使其连接池支持Kerberos认证
  • 5分钟看明白rust mod use
  • 【Java核心知识】ThreadLocal相关知识
  • 《Python基础教程(第三版)》阅读笔记 1
  • 坦克400 Hi4-T预售价28.5万元起,越野新能源好理解
  • 我的Vim学习笔记(不定期更新)
  • spring boot项目生成容器并运行
  • Vue之html中特殊符号的展示
  • 数据结构1 -- leetcode练习
  • Java设计模式:四、行为型模式-05:备忘录模式
  • MongoDB实验——MongoDB配置用户的访问控制
  • golang逃逸技术分析