美文网首页
单片机存储中的大小端格式

单片机存储中的大小端格式

作者: 帅气的店小二 | 来源:发表于2018-12-26 21:25 被阅读0次

嵌入式开发者应该对大小端模式都非常了解,特别是我们在做通信时,数据的大小端存储方式不同会对我们影响很大!!!下面我们来分析一下单片机中的大小端格式:
大端格式:即低地址存高位数据
小端格式:即低地址存低位数据
举个例子:
首先声明一个int变量 a = 0x12345678; a的地址为0x00600000;
那么以小端存储为:
0x00600000 0x78;
0x00600001 0x56;
0x00600002 0x34;
0x00600003 0x12;
若以大端方式存储:
0x00600000 0x12;
0x00600001 0x34;
0x00600002 0x56;
0x00600003 0x78;
1.下面介绍两种检测大小端格式的方法:
(1)采用共用体的方式

union MyUnion
    {
        int  a;
        char b;
    }myunion;
    myunion.a = 1;
    printf((myunion.a == myunion.b) ? "小端格式" : "大端格式");

(2)采用指针方式

    int c = 1;
    printf((*((unsigned char*)&c) == 1) ? "小端格式" : "大端格式");

2.再附上两个大小端转换的函数:

//32位大小端转换
void switch32(unsigned int *da)
{
    *da = (*da & 0xFF000000) >> 24
        | (*da & 0x00FF0000) >> 8
        | (*da & 0x0000FF00) << 8
        | (*da & 0x000000FF) << 24;
}
//16位大小端转换
void switch16(unsigned short *da)
{
    *da = (*da & 0xFF00) >> 8
        | (*da & 0x00FF) << 8;
}

以上就是我们嵌入式通常遇到的大小端存储问题,有兴趣可以拷贝这几段代码亲自试一试哦。如果喜欢请点关注哦。


公众号.jpg

相关文章

  • 单片机存储中的大小端格式

    嵌入式开发者应该对大小端模式都非常了解,特别是我们在做通信时,数据的大小端存储方式不同会对我们影响很大!!!下面我...

  • H5本地储存Web Storage

    一、本地存储由来的背景 由于HTML4时代Cookie的大小、格式、存储数据格式等限制,网站应用如果想在浏览器端存...

  • 【HTML5】HTML5本地存储和本地数据库

    一、本地存储由来的背景 由于HTML4时代Cookie的大小、格式、存储数据格式等限制,网站应用如果想在浏览器端存...

  • 大小端存储

    在计算机系统中,存储是以字节为单位的,每个地址单元都对应着一个字节,一个字节=8bit。在C语言中除了8bit的c...

  • 数据在内存中的存储格式

    数据在内存中存储格式 数据在内存中存储的格式按照小端大端而有区别。假设一个二进制文件存储如下内容:

  • 11.16

    Java 采用的是大端还是小端?大端(不清楚) 什么大小端? 大小端在计算机业界,Endian表示数据在存储器中的...

  • Java 字段在内存中存储是大端还是小端

    Java 字段在内存中是小端存储的,即低位字节在前,高位字节在后。 大小端的最小单位是字节,即大小端决定的是字节的...

  • 数据存储大小端

    大小端 大端(Big-endian):高字节在前,即高字节在低地址处;通俗讲即数据以字节为单位存储,为多个字节,其...

  • 2018-12-25 Photoshop CS6问题---压缩图

    5.4 压缩图片大小 打开图片>点击“文件”>“存储为Web所用格式”>将图片存储为Web所用格式,点击“存储”。

  • VirtualBox centos7如何扩容

    查看磁盘格式 在virtualBox中虚拟机->设置->存储,可看见磁盘格式。 修改磁盘大小 先把VBoxMana...

网友评论

      本文标题:单片机存储中的大小端格式

      本文链接:https://www.haomeiwen.com/subject/kctklqtx.html