找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1068|回复: 10
收起左侧

51单片机片内RAM的数据存储格式是怎样的?

[复制链接]
ID:1003481 发表于 2022-10-21 15:58 | 显示全部楼层 |阅读模式
51单片机片内RAM一个字节有8位,可以存放8位二进制数。将数据存放到片内RAM中时,是存储的有符号数据还是无符号数据呢?存储大于一个字节所能表示的范围的数的时候,是不是就要动用2个以上字节来存储呢?
回复

使用道具 举报

ID:624769 发表于 2022-10-21 18:15 | 显示全部楼层
你也说了,存放的是 二进制数, 和数据类型无关。
数据类型是编译器的事,和51单片机无关。
要不要动用两字节来存储大于一个字节的范围的数,也是由编译器决定,和51点片机无关。
编译器如何决定,又和你使用的语言,声明的变量类型有关。 就51单片机而言,你问的这些问题,都不是它自己能决定的。
回复

使用道具 举报

ID:401564 发表于 2022-10-21 19:35 | 显示全部楼层
是的是的
但在汇编,只有0和1
没有什么浮点,符号,整型什么的
只要是大于8位的,都是要两个或者以上的地址来存放
int 就要4个地址来存放
回复

使用道具 举报

ID:883242 发表于 2022-10-21 20:07 | 显示全部楼层
Y_G_G 发表于 2022-10-21 19:35
是的是的
但在汇编,只有0和1
没有什么浮点,符号,整型什么的

%人家问的是“51单片机”,你回复了个啥?
回复

使用道具 举报

ID:879348 发表于 2022-10-22 08:54 | 显示全部楼层
芯片没有你说的概念,处理数据符号由编译器处理,处理数据范围也是由编译器决定
回复

使用道具 举报

ID:401564 发表于 2022-10-22 14:13 | 显示全部楼层
Hephaestus 发表于 2022-10-21 20:07
%人家问的是“51单片机”,你回复了个啥?

对的,对的,你说的是对的
回复

使用道具 举报

ID:1034262 发表于 2022-10-22 15:31 | 显示全部楼层
51的RAM不区分类型,都是无符号8位一个字节,而有符号整数、浮点数那是编译器提供的算法。
回复

使用道具 举报

ID:390416 发表于 2022-10-22 17:34 | 显示全部楼层
在单片机里面,无符号的255,其实是等于有符号数据的负1
回复

使用道具 举报

ID:1007932 发表于 2022-10-22 18:04 | 显示全部楼层
RAM就像一个个格子,一个格子能放8个单位大小的东西,只要放的下不管放什么东西都行,也就是说,放的东西是你自己定义的,换句话说,RAM只存储二进制的0和1,怎么规定是什么类型是C语言的事,是一种存储协议。至于动用2个以上字节来存储,的确是,就像格子,只能是一格一格的,不存在半格,有点像flash的扇区。
从物理层面上看,里面存储一串0和1,本身是没有意义的,需要人为规定,就像暗号一样,只有规定了一定的逻辑才有意义,只不过规定这个的人不是你,而是已经定义好的,
回复

使用道具 举报

ID:983641 发表于 2022-10-22 19:32 | 显示全部楼层
搞懂数据是怎么存储的,也是好事。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表