#56. [笔记]计算机存储与机器码

[笔记]计算机存储与机器码

存储单位


计算机存储信息的最小单位:位(bit)

计算机存储信息的基本单位:字节(Byte)



1 个位 (bit) 表示一个二进制,例如 8 位二进制表示为:00000000\text{00000000}


计算机中的单位一般:bit,B,KB,MB,GB,TB,PB,EB,ZB,YB,BB,NB,DB 来表示

1B = 8bit

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

数据类型(正常情况下)

数据类型 字节
char,bool 1
short 2
int,float 4
long 4 或 8
long long,double 8
指针 4 或 8

注意上面 4 或 8 表示编译的系统位数决定


整数存储


计算机中整数数值的存储并不是将其简单地转为二进制存入内存中即可,因为涉及正负数,减法问题,所以科学家们涉及了一套整数的存储规则——三码:原码,反码,补码。

需要特别注意:正数的三码相同,负数的三码需要换算。且计算机中均以补码的形式存储数据


注意以下均以八位二进制数来演示

原码:1位符号位 + 数值位

13

其二进制形势下,最高位作为符号位,0 表示正,1 表示负。其余位作为数值位。

数值 二进制原码
13 00001101\red{0}0001101
-13 10001101\red{1}0001101

反码:正数反码与原码一致,负数反码则是其原码符号位不变,其余位取反

数值 二进制原码 二进制反码
13 00001101\red{0}0001101
-13 10001101\red{1}0001101 11110010\red{1}1110010

补码:正数的补码与原码一致,负数补码则是其反码加一

数值 二进制原码 二进制反码 二进制补码
13 00001101\red{0}0001101
-13 10001101\red{1}0001101 11110010\red{1}1110010 11110011\red{1}1110011

思考:八位二进制 10000000 是多少?