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

原码,反码,补码

原码

什么是原码

原码:十进制数据的二进制表现形式,最左边是符号位,0为正,1为负

最大值 0 1 1 1 1 1 1 1 => +127

最小值 1 1 1 1 1 1 1 1 => -127

原码的弊端

利用原码对正数进行计算是不会有问题的

但是如果是负数计算,结果就会出错,实际运算结果,跟我们预期结果是相反的。

反码

目的

为了解决不能计算负数的问题而出现的

计算规则

正数的反码不变,负数的反码在源码的基础上,符号位不变,数值取反,0变1,1变0。

例:

-56 原码 1 0 1 1 1 0 0 0

-56 反码 1 1 0 0 0 1 1 1

反码的弊端

负数运算时,结果不跨0,没问题,结果跨0,跟实际结果会有1 的偏差

补码

目的

为了解决负数计算时跨0的问题而出现的

计算原则

正数的补码不变,负数的补码在反码的基础上+1

正数的原码,反码,补码相同

补码的注意点

计算机中存储和计算机以补码的形式进行的

-128 = > 1 0 0 0 0 0 0 0 没有原码和反码

所以一个字节取值单位 -128~127

<< 向左移动,低位补0

(8) 00001000 << 2 = > (32) 00100000

右移: >>向右移动,高位补0 或 1(补1补0跟原来的保持一致)

(8) 00001000 >> 2 => (2) 00000010

无符号右移 >>> 向右移动,高位补0

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

相关文章:

  • 科技赋能,MTW400A为农村饮水安全打通“最后一公里”
  • 测试计划、测试方案、测试策略、测试用例的区别
  • c# 异常处理
  • (delphi11最新学习资料) Object Pascal 学习笔记---第6章第3节(传递字符串作为参数)
  • k8s节点负载使用情况分析命令kubectl describe node [node-name]
  • 自动驾驶加速落地,激光雷达放量可期(上)
  • 变量的间接引用
  • 学习JAVA的第六天(基础)
  • LeetCode 2673.使二叉树所有路径值相等的最小代价:自顶向下的DFS 或 自底向上的递推
  • 9、电源管理入门之CPU Idle
  • uniapp的扩展组件uni-popup 弹出层自动打开
  • 二、mysql常用函数
  • 【Redis | 第一篇】快速了解Redis
  • Vim 模式切换 | 命令集
  • 广和通5G智能模组SC171支持Android、Linux和Windows系统,拓宽智能物联网应用
  • 【51单片机】红外遥控红外遥控电机调速(江科大)
  • kubesphere jenkins 流水线 未运行(解决方案)
  • 如何保护服务器的安全
  • Python使用HDL 模拟器实现 FPGA 板卡的仿真验证
  • vue中 input disable后无法触发点击事件
  • 实战一个 Jenkins 构建 CI/CD流水线 的简单配置过程哈
  • 【InternLM 实战营笔记】大模型评测
  • 数据卷(Data Volumes) 自定义镜像(dockerfile)
  • 数据库管理-第156期 Oracle Vector DB AI-07(20240227)
  • CASAtomic原子操作详解
  • 真机测试——关于荣耀Magic UI系列HBuilder真机调试检测不到解决办法
  • 代理IP安全问题:在国外使用代理IP是否安全
  • SonarLint 疑难语法修正
  • MurmurHash算法
  • CSRF靶场实战