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

目录

一.原码

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。
 

你可能感兴趣的:(单片机,数据存储)