数据是如何在计算机中存储的,在电脑中可是只有0和1,其他数据他是识别不了的。
下边我们讲讲计算机是如何储存整数的:
1. 原码
原码是将整数的符号与数值分开来表示。数值部分按照二进制的正常表示方式来表示,符号位为最高位,0代表正数,1代表负数。
例如,对于十进制数-42,它的原码表示为:1 0101010。
2. 反码
反码是将原码的符号位不变,而数值部分按位取反,得到的新数值再代表这个整数。
例如,对于十进制数-42,它的反码表示为:1 1010101。
3. 补码
补码是将原码的符号位不变,而数值部分按位取反,再加1,得到的新数值再代表这个整数。
例如,对于十进制数-42,它的补码表示为:1 1010110。
在计算机中,采用补码来表示整数,因为补码运算可以简化加法运算,使得正数和负数的加法可以使用同一种运算方法进行处理。同时,补码还具有对计算机硬件更加友好的特点,因此被广泛地使用。
那在这些数据有没有先后之分呢?答案肯定是有的,那我们就来认识认识大小端存储:
大小端存储是指计算机在存储数据时,对于多个字节的数据,按照不同的顺序进行存储的方式。
在小端存储中,低位字节会被存储在内存的低地址中,而高位字节则会被存储在内存的高地址中。例如,一个32位整数0x12345678在小端存储中会被存储为0x78 0x56 0x34 0x12。
在大端存储中,高位字节会被存储在内存的低地址中,低位字节则会被存储在内存的高地址中。例如,同样是一个32位整数0x12345678,在大端存储中会被存储为0x12 0x34 0x56 0x78。
不同的CPU和操作系统可能采用不同的大小端存储方式,因此在数据存储时需要考虑大小端存储的问题。