Memory 数据是如何写入内存的

Memory 数据是如何写入内存的,memory,store,Memory,Store,当我们在内存中存储数据时。 它是如何存储的,以便在加载时能够识别它是什么类型的数据。 我想问的是,自然数、整数、字符等数据类型是如何存储在内存中的。因此,在以后从内存中提取时,它们很容易被识别 当我们看到内存时,我们看到的是十六进制数。 我们如何将这些十六进制数与ASCII值、整数值或任何其他值关联起来。由于您的所有数据都是以二进制形式写入的,因此chara的写入方式与int97的写入方式没有太大区别,因为它们表示相同的二进制字符串(至少是这些字符串的最后8位)。也就是说,当你从内存中读取数据时

当我们在内存中存储数据时。 它是如何存储的,以便在加载时能够识别它是什么类型的数据。 我想问的是,自然数、整数、字符等数据类型是如何存储在内存中的。因此,在以后从内存中提取时,它们很容易被识别

当我们看到内存时,我们看到的是十六进制数。
我们如何将这些十六进制数与ASCII值、整数值或任何其他值关联起来。

由于您的所有数据都是以二进制形式写入的,因此char
a
的写入方式与int
97
的写入方式没有太大区别,因为它们表示相同的二进制字符串(至少是这些字符串的最后8位)。也就是说,当你从内存中读取数据时,你读取了一种数据类型,通过这种类型,你知道你应该如何解释数据。内存不以“字符”或“整数”的形式运行,这些是假设一个抽象机器的高级概念

通常(但不一定)一个字符只是一个较小的整数,通常是8位(但一个字符也可以是32位!),它代表一个符号或字母,而不是一个离散的数字。在某些情况下,甚至可以使用可变长度对字符进行编码

内存以字节(最小的可直接寻址单元)或字为单位运行。这些都是——你们不知道——在银行里组织的。硬件通常允许以称为“缓存线”的单元进行访问,但这是在你背后秘密发生的事情。
在汇编语言中,您通常可以访问字节和它们的两倍幂,有时有特殊的对齐要求(通常也有位操作,但虽然它们只更改一位,但它们仍然可以处理整个字节/字)

然而,所有这些都不是很有趣,也与你无关。编译器(或解释器)的首要任务是确保当您谈到整数或字符时,您想要的任何东西都会在另一端输出。如果可能,工具也有责任将一个转换为另一个,如果不可能,则产生错误。
您甚至不知道整数或字符的值是否有内存位置(它很可能存储在寄存器中),除非您显式地强制执行该操作

您无法区分某个内存位置上来自“字符”的字节和属于“整数”的字节。他们看起来一模一样


虽然在大多数语言中,可以将一种类型的原始字节作为另一种类型读取,但这并不是您通常需要(或应该)做的事情。

它没有区别。你必须知道读什么以及如何解释数据。对我来说,听起来像是一个家庭作业问题?做些调查,然后当你陷入困境时,我们可以帮助你。