嵌入式-原码、补码,反码的存储

目录

一.原码

1.1简介

1.2存储规则

二.补码

2.1简介

2.2存储规则

三.反码

3.1简介

3.2存储规则


一.原码

1.1简介

原码是一种表示带符号整数的编码方式。在原码表示中,最高位表示符号位,0表示正数,1表示负数,其余位表示数值的绝对值。例如,8位原码表示范围为-127到127。这种编码方式简单直观,易于理解和实现,但在进行数值运算时可能出现溢出和无法实现减法等问题。

1.2存储规则

原码是计算机中用来表示带符号整数的一种编码方式。它的存储规则如下:

  1. 原码由一个符号位和多个数值位组成,最高位为符号位,0表示正数,1表示负数,其余位表示数值部分。

  2. 正数的原码与其二进制表示完全相同。

  3. 负数的原码的数值位与其对应正数的原码相同,但符号位取反。

  4. 原码的数值部分表示该整数的绝对值,与其数量级无关。

  5. 原码在加减法运算中存在溢出和数值的对齐问题。

原码的存储规则可以使计算机对正负数的加减法进行简单的处理,但在进行乘法、除法等运算时会引发一些问题,因此在计算机中一般采用补码或反码作为更为常用的表示方式。

二.补码

2.1简介

补码是一种用于在计算机中表示有符号整数的方法。在补码表示中,最高位(最左边的位)用来表示符号位,0表示正数,1表示负数。对于正数,其补码就是其二进制表示本身。对于负数,其补码等于其绝对值的二进制表示取反后加1。通过使用补码表示,可以将有符号整数与无符号整数一样进行二进制运算,简化了计算机中整数的处理过程。补码的使用广泛应用于计算机中的算术运算和逻辑运算。

2.2存储规则

补码的存储规则可以总结如下:

  1. 补码的位数与机器字长有关,通常为8位、16位、32位或64位等。比如,32位的补码就由32个比特位组成。

  2. 对于正数,补码与原码相同,即最高位为0。

  3. 对于负数,补码的表示方式略有不同。补码表示负数的方式是,将该负数的绝对值的二进制表示按位取反(0变1,1变0),再加上1。最高位为1表示负数。

  4. 零的补码表示方式与原码的表示方式相同。

  5. 补码中最高位被称为符号位,表示正负数。其他位数被称为数值位,表示数值大小。

  6. 补码的加减法与无符号整数的加减法相同。在补码的加减法中,符号位的处理方式与数值位相同,即符号位也按位进行加减。

  7. 补码的存储是以二进制形式存储的,可以通过直接存储补码来表示有符号整数。

补码的存储规则允许计算机在进行有符号整数运算时,使用同样的硬件电路和算法处理无符号整数和有符号整数。这种编码方式简化了运算器的设计和实现,提高了计算机的运算效率。

例如,我们要存储整数-5的补码:

  1. 首先,将-5的绝对值转换成二进制。5的二进制表示为0000 0101。

  2. 然后,将得到的二进制数取反,即1111 1010。

  3. 最后,将取反后的结果加1,即1111 1011。这就是-5的补码,它表示负数-5。

三.反码

3.1简介

反码是计算机中一种表示负数的方式。在反码表示法中,负数通过将其正数形式的每一位取反得到。对于一个n位的二进制数,如果最高位是1,则表示这是一个负数,需要对其余位进行取反,如果最高位是0,则表示这是一个正数,不需要进行取反。这样,反码表示法中的0有两个表示:+0(000...000)和-0(111...111)。

反码表示法的一个特点是,它能够表示负零。正数的反码与其本身一致,而负数则需要在正数的基础上进行取反。这样,反码运算可以方便地进行加减运算,只需要将两个数的反码相加,然后再对结果取反即可。

3.2存储规则

反码是一种表示数字的编码方式,其存储规则如下:

  1. 正数:正数的反码与其原码相同,即最高位为0,其余位表示数值大小。例如,+5的原码为00000101,反码也是00000101。

  2. 负数:负数的反码与其原码规则有所不同。首先,最高位为1表示负数,其余位表示数值大小。其次,对于负数的反码来说,除最高位外,其余位取反。例如,-5的原码为10000101,反码为11111010。

  3. 零:零的反码与其原码相同,即全为0。

相关推荐
我与岁月的森林4 天前
基于ScriptableObject设计游戏数据表
游戏·unity·数据存储
大数据在线9 天前
打造备份一体机,群晖科技平台化战略再进阶
备份·数据存储·百度智能云·备份一体机·群晖科技
青云交19 天前
大数据新视界 --大数据大厂之HBase深度探寻:大规模数据存储与查询的卓越方案
大数据·数据库·hbase·数据存储·性能优势、问题解决、应用领域·可扩展性、高可靠性·读写性能、集群管理
追梦的鱼儿25 天前
Android之SharedPreferences(SP)
android·数据存储·sp
Trouvaille ~2 个月前
【C语言篇】数据在内存中的存储(超详细)
c语言·数据存储·二进制·进制·整数·浮点数·存储方式
爱桥代码的程序媛2 个月前
鸿蒙语言基础类库:【@system.storage (数据存储)】
华为·harmonyos·数据存储·鸿蒙系统·openharmony·鸿蒙开发·语言
JackieZhengChina4 个月前
区块链简要介绍及运用的技术
区块链·数据安全·数据存储
OceanBase数据库官方博客6 个月前
解析OceanBase v4.2磁盘数据文件支持按需扩展的功能
oceanbase·分布式数据库·数据存储·技术原理·产品特性
Hello-Brand7 个月前
MySQL系列:索引失效场景总结
mysql·数据存储·数据库技术
jerry95907 个月前
6.5 共享数据
数据存储