首页 > 其他分享 >从零开始学习嵌入式----C语言数据存储(大端与小端)

从零开始学习嵌入式----C语言数据存储(大端与小端)

时间:2024-07-09 18:27:30浏览次数:17  
标签:小端 char 存储 int 内存空间 ---- 地址 大端

 

目录

一、什么是数据中的高位与低位?内存空间中的高地址与低地址?

1)内存空间中的低地址与高地址

2)数据中的高位与低位

二、什么是大端存储与小端存储

1)大端存储

2)小端存储

三、大小端存储方法的测试

1)使用指针测试大小端

2)使用共用体测试大小端


一、什么是数据中的高位与低位?内存空间中的高地址与低地址?

1)内存空间中的低地址与高地址

 

 

2)数据中的高位与低位

二、什么是大端存储与小端存储

1)大端存储

     内存空间中低地址存储数据中的高字节;内存空间中高地址存储数据中的低字节。

2)小端存储

     内存空间中的低地址存放数据中的低字节;内存空间中的高地址存放数据中的低字节。

三、大小端存储方法的测试

 

1)使用指针测试大小端

 

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a = 0x12345678;
    char *p = (char *)&a;
    if (*p == 0x12)
    {
        printf("大端存储\n");
    }
    else
    {
        printf("小端存储\n");
    }
    printf("%#x\n", *p);

    return 0;
}

 

       我们将int*类型的 &a强制转换为了char*类型,但值没有改变(地址)

       *p就是p[0],把变量的地址强制类型转换为char*,这样就可以每次取出一个字节的内容,因为char的大小就是1个字节。

2)使用共用体测试大小端

#include <stdio.h>
#include <string.h>
union demon
{
    int a;
    char b;
};

int main(int argc, char const *argv[])
{
    union demon d1;
    d1.a=0x12345678;
    //输出0x12为大端存储;输出0x78为小端存储
    printf("%#x\n",d1.b);
    return 0;
}

      在联合体中定义一个char 类型的变量和int类型的变量,利用二者所占同一段存储空间,可以通过引用联合体变量中的成员访问char 类型的数据,取出一个字节的内容。 

标签:小端,char,存储,int,内存空间,----,地址,大端
From: https://blog.csdn.net/D1557329860/article/details/140236945

相关文章

  • 如何理解李彦宏说的“不要卷模型,要卷应用”
    人不走空                                          ......
  • Gradle基础:从入门到掌握
    人不走空                                          ......
  • OceanBase 配置项&系统变量实现及应用详解(2):系统变量的定义及使用场景
    在上一篇博客,配置项的定义及使用方法,详细阐述了配置项的概念及其基本应用方式,这些配置项能够调控集群或租户的行为方式。然而,在实际使用OceanBase的过程中,我们有时仅希望针对当前会话调整某些行为特性,且在关闭会话连接后,这些调整不会影响后续的使用。此时,我们就需要借助“系统......
  • 轻松搞定图片处理,千鹿设计助手让工作更高效!
    设计师小伙伴们,你是否遇到过这样的烦恼......
  • clean code-代码整洁之道 阅读笔记(第十七章 终章)
    大纲第十七章味道与启发17.1注释C1:不恰当的信息C2:废弃的注释C3:冗余注释C4:糟糕的注释C5:注释掉的代码17.2环境E1:需要多步才能实现的构建E2:需要多步才能做到的测试17.3函数F1:过多的参数F2:输出参数F3:标识参数F4:死函数17.4一般性问题G1:一个源文件中存在多种语......
  • 转-OAuth2.0 原理流程及其单点登录和权限控制
    原文链接单点登录是多域名企业站点流行的登录方式。本文以现实生活场景辅助理解,力争彻底理清OAuth2.0实现单点登录的原理流程。同时总结了权限控制的实现方案,及其在微服务架构中的应用。1什么是单点登录1.1多点登录传统的多点登录系统中,每个站点都实现了本站专用的帐号数......
  • APICloud+ cosClient快速构建APP
    APICloud简介APICloud是一个移动低代码开发平台,对于不同的需求场景提供了不同的功能模块,并快速构建企业级应用。cosClient模块简介cosClient是腾讯云对象存储(COS)针对APICloud平台桥接原生SDK封装的模块,可以使用cosClient快速接入并使用COS的功能,目前支持Android、iOS。在APIC......
  • 工控、物联网、电力行业调试工具大全
    工控、物联网、电力行业调试工具大全目录工控、物联网、电力行业调试工具大全Modbus调试工具MQTT调试工具IEC104/IEC101调试工具IEC61850调试工具DL/T645调试工具Modbus调试工具Modbus是一种用于工业自动化系统中的通信协议,最早由Modicon(现为施耐德电气的一部分)在1979年开......
  • Redis实现可重入的分布式锁
    加锁脚本--加锁脚本--成功返回1,失败返回-1localkey=KEYS[1]localrequestId=KEYS[2]--单位毫秒localttl=tonumber(KEYS[3])localresult=redis.call('setnx',key,requestId)ifresult==1thenredis.call('pexpire',key,ttl)elseresult......
  • 第三章 追随领头羊
    追随领头羊1.市场价格总是上上下下,不停运动,在那些重大运动背后,必然存在这一种不可阻挡的力量,了解这一点就够了,不用去了解价格运动的所有原因,过于琐细,过于好奇反而画蛇添足,只要认清市场的运动确已发生,顺着潮流驾驭着你的投机之道,就能够从中受益2.不要和市场讨价还价,最重要的事绝......