数据在内存中的存放方式

createh51周前 (04-08)技术教程8

对于数据在计算机中存储一直不是特别清楚,为了加深理解这个问题,特意浏览了一些相关资料,总算有些许收获,对此将一点心得总结。

计算机是以二进制方式进行存储数据的,这一点需要牢记。于是问题来了,当我们 int num=10的时候,数据是怎么进行存储呢?

我们先来看一下这个知识:

计算机电子元器件

内存条是一个非常精密的部件,包含了上亿个电子元器件,它们很小,达到了纳米级别。这些元器件,实际上就是电路;电路的电压会变化,要么是 0V,要么是 5V,只有这两种电压。5V 是通电,用1来表示,0V 是断电,用0来表示。所以,一个元器件有2种状态,0 或者 1。

通过控制这些电路的开闭,我们可以得到很多种的组合信息,每一个元器件虽然只能有两个状态,但是数量确实呈现2的指数次增加,例如8个元器件就是256(2的8次方) 种不同的组合,16个元器件就是65536(2的16次方)中不同的组合。

1个元器件称为,一般情况下将8个元器件作为一个单元,称为一个字节,即1Byte,16个元器件即为2Byte,依次类推。

以下是单位换算:注意bit(一个元器件)

1Byte = 8 bit

1KB = 1024Byte

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

1PB = 1024TB

现在,你知道1GB的内存有多少个元器件了吧.

现在回到上面的问题(假定你的计算机是32位的系统,也就是一次能处理4个Byte的数据),当int num=10时,num对计算机来说只是一个标识,他表示这需要4Byte的内存空间,并且存放的是一个整形的数字10,首先会将10转换为二进制,即1010,但是需要换算位32位的来满足计算机一次处理的能力,于是就要进行补位,所以就变成了00000000 00000000 00000000 00001010,这样计算机相当于就要分配4Byte(即32个元器件)来存储10这个信息,同时这个内存地址给到num,计算机正式通过这个地址来标记这个数字10

以上就是计算机数据存储的一个过程,其他类型的数据过程一样(谨记一点,计算机是通过元器件的组合,来存储数据信息,元器件只有开闭两种状态,决定了计算机以二进制方式进行处理,计算机上有很多的元器件)

相关文章

4.Java语言概述(三)

4.1Java的API文档API (Application Programming Interface,应用程序编程接口)是Java提供的基本编程接口。Java语言提供了大量的基础类,因此 Oracl...

下次面试我一定问:MySql数据是如何存储在磁盘上存储的?

关于MySql数据库,相信很多人都不陌生,这是当今最常用的一种关系型数据库,关于MySql的知识也是很丰富的。那么,不知道大家有没有想过这样的问题:MySql中的数据是存在哪的?又是如何存储的呢?本文...

某东面试:Java堆内存用到100%了,咋办呀?该从哪里下手排查?

面试官:Java堆内存用到100%了,咋办呀?该从哪里下手排查?候选人:1. 问题理解背景:Java堆内存是Java程序用来存放对象的地方。如果堆内存用满了,程序就会频繁地进行垃圾回收(GC),甚至可...