原码,反码,补码

简介: 原码是二进制的直观表示,符号位决定正负;反码用于解决负数计算问题,负数按位取反;补码在反码基础上加1,解决跨0误差。计算机中所有数据存储与运算均采用补码形式,可准确处理正负数运算,并能多表示一个特殊值-128。

原码, 反码, 补码

原码:

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

原码的弊端:

1,利用原码进行计算的时候, 如果是整数完全没有问题.

2,但是如果是负数计算, 结果就出错, 实际运算的方向, 跟正确的运算方向是相反的.

反码出现的目的:

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

反码的计算规则:

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

反码的弊端:

负数运算的时候, 如果结果不跨0, 是没有任何问题的, 但是如果结果跨0, 跟实际的结果会有1的偏差.

补码出现的目的:

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

补码的计算规则:

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

另外补码还能多记录一个特殊的值-128, 该数据在1个字节下, 没有原码和补码.

补码的注意点:

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

相关文章
|
编译器 C语言 C++
【C语言】malloc()函数详解(动态内存开辟函数)
【C语言】malloc()函数详解(动态内存开辟函数)
4919 2
|
7月前
|
SQL 关系型数据库 MySQL
|
存储 编译器 C语言
【深入理解函数栈帧:探索函数调用的内部机制】
【深入理解函数栈帧:探索函数调用的内部机制】
484 0
|
7月前
|
Java 调度
什么是分片广播任务
本文介绍XXL-JOB的分片广播机制,通过集群执行器动态分片处理任务。调度中心为每个执行器分配分片参数,实现任务并行处理,提升效率。适用于大数据量分布式场景,支持动态扩容,每台机器处理部分数据,显著降低耗时。开发时可通过`getShardIndex()`和`getShardTotal()`获取分片信息,灵活控制业务逻辑。
|
7月前
|
存储 NoSQL Linux
2.4 Linux系统中的安装启动和连接
本文介绍在Linux系统部署单机MongoDB用于生产环境的完整步骤,包括下载、解压、目录配置、日志与数据路径设置、配置文件编写及服务启停方法。操作类似Windows,通过配置`mongod.conf`实现后台运行,支持命令行与图形工具连接,并提供防火墙处理与安全关闭服务方案,确保稳定运行。
|
6月前
|
存储 Linux 文件存储
深入理解Linux文件系统(从零开始掌握文件存储与管理)
本教程深入浅出地讲解Linux文件系统核心机制,涵盖ext4文件系统、inode结构、磁盘管理及常用命令(如df、ls -i、lsof等),揭示文件存储原理与常见问题(如删除文件后空间未释放)的根源,助你掌握Linux底层知识,提升系统管理能力。
|
7月前
|
运维 监控 Linux
Linux 学习资源精选:从入门到运维的高效清单
本文针对Linux学习“资源繁杂、难筛选”的痛点,按入门、运维、进阶三阶段精选优质资源,拆解其核心价值与使用方法,结合实操建议与学习规划,帮助学习者分阶段精准提升,少走弯路,系统构建Linux知识体系。
|
存储 缓存 算法
【软考:软件设计师】 3 计算机组成与体系结构(二)详解存储系统 | 输入输出与总线
【软考:软件设计师】 3 计算机组成与体系结构(二)详解存储系统 | 输入输出与总线
1420 0
|
存储 网络协议 Java
LDAP简介及Java、客户端连接
LDAP简介及Java、客户端连接
900 0
|
编译器 C++
#include<> 与#include ""的区别
在C++中,`#include &lt;&gt;` 和 `#include &quot;&quot;` 都用于包含头文件,但使用场景不同。`#include &lt;&gt;` 用于包含系统标准库头文件,编译器会在标准库路径中查找;而 `#include &quot;&quot;` 用于包含用户自定义的头文件,编译器会优先在当前项目目录中查找。
1151 3

热门文章

最新文章