原码反码补码移码的介绍和计算

简介: 原码反码补码移码的介绍和计算

1.原码


原码的定义:十进制数据的二进制表示形式就是原码。

(1)原码的最左边那位是符号位,其他位为数据位,符号位是0则为正数,符号位是1则为负数。

(2)一个byte有8bit,最大值是0111111(+127),最小值是11111111(-127)

正数计算:

5+2=7

00000101

+      0010

00000111


2.反码


反码出现的原因:原码用符号位来表示正负,所以负号难以和其他数进行计算,反码出现,作为负数的计算救星。

反码的定义:正数的反码等于本身,负数的反码是符号位保存不变,其余按位取反。比如10000101(-5负数原码)->11111010(反码)。

反码的最大值是0111111(+127),最小值是11111111(-127)

负数计算:10000101(十进制为-5)的反码11111010

-5-1=-6

11111010

-             1

11111001


把11111001转回原码是1000110 刚好为-6。

3.补码


补码的引入:反码也有缺点,如果是负数跨零进行计算的话,计算得出的结果不对,这时候,作为反码的补充编码-补码出现。

补码的定义:正数的补码是本身,负数的补码等于其反码+1。比如10000101(-5负数原码)->11111010(反码)->11111011(补码)。

反码的最大值是+127,最小值是-128

跨零计算:

-5+3=-2

 11111011

+        0011            

 11111110


把11111110【补码】转回原码,对其反码+1得10000010,十进制为-2。

4.移码


移码的定义:正数的移码是本身,负数的移码等于其补码然后对符号位取反。比如10000101(-5负数原码)->11111010(反码)->11111011(补码)->01111011(移码)。

计算:

-5+3=-2

 01111011

+        0011            

 01111110


把01111110【移码】转回原码,对其补码然后对符号位取反得10000010,十进制为-2。

5.原码、反码和补码的数据表示范围:

目录
相关文章
|
小程序 JavaScript 前端开发
小程序wx:if 和hidden的区别?
小程序wx:if 和hidden的区别?
|
机器学习/深度学习 算法 安全
密码学系列之五:MD5、SHA1——一文搞懂哈希函数
密码学系列之五:MD5、SHA1——一文搞懂哈希函数
8955 0
IEEE 754规格化浮点数所能表示的最大值和最小值
IEEE 754规格化浮点数所能表示的最大值和最小值
4335 1
IEEE 754规格化浮点数所能表示的最大值和最小值
|
网络协议 Go
curl --resolve参数的作用
curl --resolve参数的作用
582 0
|
运维 Kubernetes API
k8s开启临时容ephemeral器进行debug调试
k8s开启临时容ephemeral器进行debug调试
|
3月前
|
Web App开发 网络协议 Linux
【Linux】网络基础
TCP/IP五层模型是网络通信的基础框架,将复杂的数据传输过程分为物理层、数据链路层、网络层、传输层和应用层,每层各司其职,协同完成远程通信。该模型确保了不同设备和网络之间的互联互通,是现代互联网运行的核心机制。
194 5
|
9月前
|
存储
计算机基础(4)——原码、补码、反码
计算机为了区分数值的正负提出了符号位的设定,计算机用最高位存放符号,这个被称为符号位。正数的符号位为0, 负数的符号位为1。 例如,1的二进制表示形式为`0000 0001`,而-1的二进制表示形式为`1000 0001`。在计算机中,一个字节为8个位,最大值为0111 1111,十进制为127。最小值为1000 0000,十进制为-128。因此一个字节的取值范围为-128~127之间。
2138 3
|
12月前
|
SQL 存储 缓存
SQL数据库查询详解
数据库是现代信息社会的基石,它们存储和管理着大量的数据。而SQL(StructuredQueryLanguage)作为一种强大的数据库查询语言,广泛应用于各种数据库系统中。本文将详细介绍SQL数据库查询的基本概念、语法、常用操作以及优化策略。一、SQL数据库查询概述SQL是一种用于管理关系数据库的标
742 3
|
SQL 存储 数据库
关系数据库:关系运算
关系数据库:关系运算
790 4
关系数据库:关系运算
|
存储 分布式计算 Hadoop
Hadoop集群规模扩展
【4月更文挑战第14天】Hadoop集群扩展可通过添加更多节点、垂直扩展(增强单节点资源)和水平扩展(增加节点数量)来实现。关键点包括规划扩展策略、确保集群稳定性和优化配置。注意在扩展过程中要保证数据完整性,并根据需求调整以提升集群性能和效率。
246 1