整数在内存里面的存储
整数在计算机里面的存储是按照二进制的方式进行存储
显示的时候是按照16进制的方法进行显示
1. 整数在内存中的存储在讲解操作符的时候,我们就讲过了下⾯的内容:整数的2进制表⽰⽅法有三种,即原码、反码和补码
三种表⽰⽅法均有符号位和数值位两部分,符号位都是⽤0表⽰“正”,⽤1表⽰“负”,⽽数值位最⾼位的⼀位是被当做符号位,剩余的都是数值位。
正整数的原、反、补码都相同。负整数的三种表⽰⽅法各不相同。
原码:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。
反码:将原码的符号位不变,其他位依次按位取反就可以得到反码。
补码:反码+1就得到补码。
对于整形来说:数据存放内存中其实存放的是补码。
总结
在计算机系统中,整数的存储使用的是补码形式,而不是原码,计算的形式是原码,而不是补码。
原码转补码需要取反+1
补码转原码也需要取反+1
实际的存储不管怎么说都是二进制,但是为了观察方便,采取的是16进制的方式进行表现
详解
为什么呢?在计算机系统中,数值⼀律⽤补码来表⽰和存储。原因在于,使⽤补码,可以将符号位和数值域统⼀处理;同时,加法和减法也可以统⼀处理(CPU只有加法器)此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
1. 数据类型
计算机中整数类型有多种,常见的有短整型(short)、整型(int)、长整型(long)等。这些类型定义了整数能表示的范围以及所占用的内存空间。例如,在C语言中,short通常占用2个字节(16位),int通常占用4个字节(32位),long在某些平台上是4个字节,在64位系统上可能是8个字节。
2. 字节大小
字节是计算机存储的基本单位,一个字节(byte)包含8位(bit)。因此,一个字节可以表示256(2^8)个不同的值,从0到255。整数的大小取决于它占用的字节数。
3. **Endianness(字节序)**:
这指的是多字节数据在内存中的存储顺序。有两种主要的字节序:小端(little-endian)和大端(big-endian)。在小端格式中,最小的字节存储在地址最低的位置,而在大端格式中,最大的字节存储在最低地址。不同的硬件和操作系统可能使用不同的字节序。
4. **整数的表示方法**:
整数在内存中的存储方法依赖于整数的类型和大小。
- 对于有符号整数,通常使用二进制补码(two's complement)表示法。这种方法允许一个数表示正数和负数,并且可以简化算术运算的硬件实现。
- 无符号整数则直接以二进制形式存储,不使用补码。
例如,一个32位的整数(int)可以表示从-2,147,483,648到2,147,483,647范围内的任何整数。存储时,计算机将这些数字转换为二进制形式,并按照机器的字节序排列。在内存中,这些二进制数会被分成4个字节,每个字节8位,按照特定的顺序(取决于系统的endianness)存储。
总之,整数在内存中的存储涉及数据类型、字节序以及二进制补码或无符号表示法,这些因素共同决定了如何在计算机内存中为整数分配空间以及如何解读这些空间中的数据。