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

原码反码补码计算以及按位取反操作

原码反码补码

计算

正数的原码,反码,补码相同如+5,原码可表示为00000101

负数的原码由正数原码得来,将最高位由0变为1就为负数的原码

如-5的原码可以表示为10000101,反码是最高位不变,其余取反则-5

的反码0为11111010,补码=反码+1即11111011

计算机只有加法器,所以在计算其他运算是都是将其转换为加法运算

比如拿16-22为例,转换为16+(-22)计算机计算时借助补码运算,过程如下:

16转二进制  >> 00010000
-22转二进制 >> 10010110
16的补码  >> 00010000
-22的反码 >> 11101001
-22的补码 >> 11101010
16+(-22)>> 11111010 # 也就是-6的补码
-6的反码  >> 11111001
-6的原码  >> 10000110 = -6

按位取反

拿5举例:

5转二进制 >> 00000101
按位取反  >> 11111010 # 得到补码的一种形式
最高位是1,说明是负数,那么就满足补码=反码+1
那得到反码 >> 11111001
转换为原码 >> 10000110
二进制转16进制 >> -6
所以在Python中,~5=-6

二进制计算加减法则

加法:0+0=0
     0+1=1
     1+1=0 # 进位写0
减法:0-0=0
     0-1=1 # 借位写1
     1-0=0

大概就是这些吧(自己在借鉴中学习)

相关文章:

  • Linux 环境“从零”部署 MongoDB 6.0:mongosh 安装与数据操作全攻略
  • Node.js安装与学习的简单记录
  • C++三大特性之多态
  • Mission Planner MP地面站添加Cesium三维地图
  • 我国公共数据授权运营的实践调查与展望——目标定位、行动要素、政策保障及平台支持
  • JavaScript 简单类型与复杂类型-简单类型的内存分配
  • 【DeepSeek开发】Python实现纽约房价热力图
  • 基于LangChain4j调用火山引擎DeepSeek R1搭建RAG知识库实战指南
  • FreeRTOS-计数型信号量
  • 【OpenCV C++】图像增强:三种锐化方式,图像清晰度增强
  • TCP基本入门-简单认识一下什么是TCP
  • 关于“你对 Spring Cloud 的理解”
  • SpringBoot 中的 Redis 序列化
  • 【全栈开发】从0开始搭建一个图书管理系统【一】框架搭建
  • DeepSeek开源周 Day04:从DualPipe聊聊大模型分布式训练的并行策略
  • 微信小程序细小知识累计记录
  • 1. HTTP 数据请求
  • 期权帮|国内期权交易投资人做卖出期权价差交易收取的保证金是单边的还是双向的?
  • SpringBoot3—快速入门
  • 大白话css第三章实践与提升
  • 上海公办小学验证今起开始,下周一和周二分区进行民办摇号
  • 乌称苏梅州一公共汽车遭俄军袭击,致9死4伤
  • 时隔3年,持续近2小时,俄乌在土耳其谈成了什么?
  • 泉州围头湾一港区项目炸礁被指影响中华白海豚,官方:已叫停重新评估
  • 商务部就开展加强战略矿产出口全链条管控工作应询答记者问
  • 陕西一村民被冒名贷款40余万续:名下已无贷款,将继续追责