首页 > 其他分享 >图解计算机数据大小以及字节存储顺序

图解计算机数据大小以及字节存储顺序

时间:2022-11-25 13:35:05浏览次数:38  
标签:1024 存储 字节 32 地址 字长 图解 CPU

数据大小

每台计算机都有这样一个称为 字(word) 的数据单位,它用来表示该计算机一次性处理事务的固定长度。一个字的位数称之为 字长(word size) ,是用来指明指针数据的 标称大小(nominal size) 。通常情况下,我们称处理字长为 32 位的 CPU 叫 ​​32 位 CPU​​​ ,也就是说, ​​32 位 CPU​​​ 在同一个时间里能一次性处理字长 32 位的二进制数据。当然,这里要强调一个字究竟是等于多少字节的问题, ​​32 位 CPU​​​ 一个字等于 ​​4​​​ 个字节,但 ​​64 位 CPU​​​ 一个字等于 ​​8​​ 个字节,也就是说字长与处理器有关,不同处理器有着不同的字长。

字长为 位的机器,其虚拟地址的范围为 ~ ,程序最多访问

在 C 语言中, C 为不同的数据类型分配了相应的字节大小,如下表所示,当然也可能随机器和编译器的不同而有所不同。

C 声明

字节数

有符号

无符号

32 位

64 位

[signed] char

unsigned char

1

1

short

unsigned short

2

2

int

unsigned

4

4

long

unsigned long

4

8

int32_t

uint32_t

4

4

int64_t

uint64_t

8

8

char *


4

8

float


4

4

double


8

8

所以,我们可以看出,分配的字节数是受到程序是如何编译的影响而变化的。

存储容量单位

说到数据大小,不得不简单介绍一下计算机存储容量单位。信息存储单位有位、字节和字等几种,当然还有扩展单位 ​​KB​​​ 、​​MB​​​ 等。除了字长和一字节等于八比特位之外,其他的换算率都为 ​​1024​​​ ,但为了工业制造上的方便,工业制造上的换算率都为 ​​1000​​​ ,这也是你所购买 ​​32 G​​​ U 盘实际在电脑上显示不到 ​​32 G​​​ 容量的原因。各种存储设备存储容量单位有 ​​KB​​​ 、​​MB​​​ 、​​GB​​​ 和 ​​TB​​ 等几种,相信大家都不陌生,这里就不再赘述。以下给出了各单位的换算公式。

1 B = 8 bit 

1 KB = 1024 B 

1 MB = 1024 KB

1 GB = 1024 MB 

1 TB = 1024 GB 

1 PB = 1024 TB

1 EB = 1024 PB 

1 ZB = 1024 EB 

1 YB = 1024 ZB 

1 BB = 1024 YB 

1 NB = 1024 BB 

1 DB = 1024 NB

1 CB = 1024 DB 

1 XB = 1024 CB

寻址和字节存储顺序

对于一个跨越了几个字节的数据对象,这个数据对象所占据的最低地址就规定为该对象的起始地址。例如,对于一个 ​​int​​​ 型的变量 ​​x​​​ ,其值为 ​​0x01234567​​​ ,假设它的起始地址为 ​​0x200​​​ ,则这个数据对象所占据的地址总共有 ​​4​​​ 个,如下图所示,即 ​​0x200​​​ 、 ​​0x201​​​ 、 ​​0x202​​​ 和 ​​0x203​​ 。

图解计算机数据大小以及字节存储顺序_字节数

我们在保存它的值时总是一个字节一个字节地存。当然,这里又引出了一个问题,就是按什么样的字节顺序把这个值放入相应的内存。这里有两种顺序可选:

小端法(little endian) :最低有效字节在最前面。也就是从右至左把每个字节从低地址向高地址依次存入。

大端法(big endian) :最高有效字节在最前面。也就是按我们平常书写的顺序把每个字节从低地址向高地址依次存入。

具体的可以参考上面给出的图。

参考文献:

[1] Bryant, Randal E., and David R. O'Hallaron. 深入理解计算机系统 Computer Systems: A Programmer's Perspective. Translated by 龚奕利 and 贺莲, 3rd ed., 机械工业出版社, 2016.




标签:1024,存储,字节,32,地址,字长,图解,CPU
From: https://blog.51cto.com/u_15891283/5886569

相关文章

  • 图解计算机信息的表示
    大家都知道在计算机中信息都是用​​0​​​和​​1​​来表示的。大多数计算机使用8位(bit)即1字节(Byte)大小的块作为最小的可寻址的内存单元。大部分现代系统......
  • 图解子网掩码
    在上一次图解子网划分中,我们已经讲到了如何把IP地址进一步划分为子网号和主机号,但在网络中要如何识别哪些位是网络号,哪些位又是主机号呢?这里就要使用子网掩码了。子网掩码......
  • 图解子网寻址
    IP地址分为五类,单播地址有三类。随着网络的发展,如果都为接入Internet的新网段分配一个新网络号,例如一个A类地址,网络号只有​​8​​​位,剩余​​24​​位都是主机......
  • 图解广播地址
    广播地址(BroadcastAddress)是专门用于向网络中所有设备进行发送的网络地址。发送到广播地址的消息可以被所有网络连接的主机接收。而多播地址是用于向特定的一组设备进......
  • c++之类和对象——类的定义,存储方式,this指针!(五千字长文详解!)
    c++详解之类和对象——类的定义,存储方式,this指针!面向过程和面向对象初步认识面向过程:分析出求解问题的步骤,通过函数调用逐步解决问题面向对象:关注的是对象!讲一件事分成不......
  • 更改docker存储路径
    docker默认存储路径是/var/lib/docker,占用服务器根分区。容易导致磁盘空间占满停止docker1systemctlstopdocker创建新的存储路径1mkdir/home/docker-p迁移......
  • Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
    批量删除表、视图、序列、存储过程、函数前,生成对应的SQL执行脚本,然后执行生成对应的脚本即可:一、删除数据库表   --生成删除oracle数据库表的脚本语句   select......
  • 基于LSM树的存储机制简述
    下午听了关于MyRocks-PASV的研究讲座,很有意思所以学习了一下LSM树的一些简单的底层原理。现在整理一下我们都知道目前Key:Value型的数据库普遍较之关系型数据库有着更......
  • 读图片然后存储
    importcv2f=open('错误.txt')foriinf.readlines():  sum=sum+1  ifsum>924:    break  i=str(i).strip('\n')#去除回车。  color_im......
  • 大数据文件存储格式
    数据仓库能支持多种文件格式,如hive可以支持textfile,RCFile,SequenceFile,ORC,Parquet格式等,我们使用最多的是textfile,SequenceFile,ORC以及parquet格式。TextFileTextFile的......