标题: 51单片机片内RAM的数据存储格式是怎样的? [打印本页]

作者: MagicKrse    时间: 2022-10-21 15:58
标题: 51单片机片内RAM的数据存储格式是怎样的?
51单片机片内RAM一个字节有8位,可以存放8位二进制数。将数据存放到片内RAM中时,是存储的有符号数据还是无符号数据呢?存储大于一个字节所能表示的范围的数的时候,是不是就要动用2个以上字节来存储呢?

作者: 188610329    时间: 2022-10-21 18:15
你也说了,存放的是 二进制数, 和数据类型无关。
数据类型是编译器的事,和51单片机无关。
要不要动用两字节来存储大于一个字节的范围的数,也是由编译器决定,和51点片机无关。
编译器如何决定,又和你使用的语言,声明的变量类型有关。 就51单片机而言,你问的这些问题,都不是它自己能决定的。
作者: Y_G_G    时间: 2022-10-21 19:35
是的是的
但在汇编,只有0和1
没有什么浮点,符号,整型什么的
只要是大于8位的,都是要两个或者以上的地址来存放
int 就要4个地址来存放
作者: Hephaestus    时间: 2022-10-21 20:07
Y_G_G 发表于 2022-10-21 19:35
是的是的
但在汇编,只有0和1
没有什么浮点,符号,整型什么的

%人家问的是“51单片机”,你回复了个啥?
作者: wufa1986    时间: 2022-10-22 08:54
芯片没有你说的概念,处理数据符号由编译器处理,处理数据范围也是由编译器决定
作者: Y_G_G    时间: 2022-10-22 14:13
Hephaestus 发表于 2022-10-21 20:07
%人家问的是“51单片机”,你回复了个啥?

对的,对的,你说的是对的
作者: coody_sz    时间: 2022-10-22 15:31
51的RAM不区分类型,都是无符号8位一个字节,而有符号整数、浮点数那是编译器提供的算法。
作者: 人人学会单片机    时间: 2022-10-22 17:34
在单片机里面,无符号的255,其实是等于有符号数据的负1
作者: 一事无成    时间: 2022-10-22 18:04
RAM就像一个个格子,一个格子能放8个单位大小的东西,只要放的下不管放什么东西都行,也就是说,放的东西是你自己定义的,换句话说,RAM只存储二进制的0和1,怎么规定是什么类型是C语言的事,是一种存储协议。至于动用2个以上字节来存储,的确是,就像格子,只能是一格一格的,不存在半格,有点像flash的扇区。
从物理层面上看,里面存储一串0和1,本身是没有意义的,需要人为规定,就像暗号一样,只有规定了一定的逻辑才有意义,只不过规定这个的人不是你,而是已经定义好的,
作者: youlinys    时间: 2022-10-22 19:32
搞懂数据是怎么存储的,也是好事。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1