找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1436|回复: 4
收起左侧

如何用AT24c02存储0~99999这个数,特别是大于65536 如何拆分合并?

[复制链接]
ID:992703 发表于 2021-12-28 20:14 | 显示全部楼层 |阅读模式
我知道是分高低字节存,但比如存99999这个,如何拆分合并,刚入门,不太会处理
回复

使用道具 举报

ID:883242 发表于 2021-12-28 21:42 | 显示全部楼层
既然你能存储65536,就一定知道如何拆分两个字节到24C02里面,那么扩展拆分4字节更是水到渠成的事情,这个问题我都想不明白。
回复

使用道具 举报

ID:161164 发表于 2021-12-28 21:57 | 显示全部楼层
共用体了解一下

typedef union{
   char Dat_c[4];//[0]=0x12,[1]=0x34,[2]=0x56,[3]=0x78
   int Dat_i[2];//[0]=0x1234, [1]=0x5678;
   long Dat_l;//=0x12345678
   float Dat_f;
}EData;

//Using example
EData Save_Data;
回复

使用道具 举报

ID:213173 发表于 2021-12-28 21:58 | 显示全部楼层
unsigned long a;
unsigned char b,c,d;

        a=99999;
//拆分
        b=a>>16;//取高8位
        c=a>>8;//取中8位
        d=a;//取低8位
//合并
        a=((unsigned long)b<<16)|((unsigned int)c<<8)|d;
回复

使用道具 举报

ID:893997 发表于 2021-12-29 15:35 | 显示全部楼层
建议采用取余的方式把每一位取出来
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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