当前位置: 首页 > news >正文

大小端判断函数

基本概念

  1. 高位(Most Significant Byte, MSB):

    • 高位是指在一个多字节数中表示数值的最大部分的字节。
    • 在 0x01020304 中,最高有效字节是 01,这是整个数值中最有影响的部分。
  2. 低位(Least Significant Byte, LSB):

    • 低位是指在一个多字节数中表示数值的最小部分的字节。
    • 在 0x01020304 中,最低有效字节是 04,这是整个数值中影响最小的部分。

小端(Little-Endian):

  • 在小端存储中,低序号的字节存储数据的最低有效部分。即,数值的最低有效字节(Least Significant Byte, LSB)放在内存的低地址处,而最高有效字节(Most Significant Byte, MSB)则放在高地址处。
  • 例如,对于 0x01020304,在小端模式下存储为:
地址:  | 0x00 | 0x01 | 0x02 | 0x03 |  
数据:  | 0x04 | 0x03 | 0x02 | 0x01 |  

大端(Big-Endian):

  • 在大端存储中,低序号的字节存储数据的最高有效部分。即,数值的最高有效字节放在内存的低地址处,而最低有效字节放在高地址处。
  • 例如,对于 0x01020304,在大端模式下存储为:
地址:  | 0x00 | 0x01 | 0x02 | 0x03 |  
数据:  | 0x01 | 0x02 | 0x03 | 0x04 |  

#include <stdio.h>
#include <stdint.h>

int is_little_endian(void)
{
    const uint32_t value = 0x01020304;
    const uint8_t *byte_ptr = (const uint8_t *)&value;
    
    return (byte_ptr[0] == 0x04) ? 1 : 0;
}

int main(void) 
{
    if( is_little_endian() ) {
        printf("litte endian!\n");
    } else {
        printf("big endian!\n");
    }

    return 0;
}

相关文章:

  • 【I/O】文件系统操作
  • 2024年第十五届蓝桥杯CC++大学A组--成绩统计
  • 贪心算法:部分背包问题深度解析
  • openwrt软路由配置-----扩展系统空间
  • 【Linux】39.一个基础的HTTP Web服务器
  • 入侵检测系统(IDS)和入侵防御系统(IPS)有啥区别?
  • Linux系统05---进程
  • 安科瑞测频仪表:新能源调频困局的破局者
  • 【AI提示词】常青笔记生成器
  • 鸿蒙开发中的并发与多线程
  • 程序化广告行业(72/89):Tag Manager系统代码操作与行业发展剖析
  • yarn:error Error: certificate has expiredERR_OSSL_EVP_UNSUPPORTED解决
  • 【QT】QT的消息盒子和对话框(自定义对话框)
  • LLC工作模态详解
  • 数据结构与算法-图论-复习1(单源最短路,全源最短路,最小生成树)
  • 突破,未观测地区罕见极端降雨的估计
  • Qt 子项目依赖管理:从原理到实践的最佳分析:depends还是 CONFIG += ordered
  • CVE-2025-24813 漏洞全解析|Apache Tomcat 关键路径绕过与RCE
  • 【AI论文】重新思考预训练中的反思
  • 【ES系列】Elasticsearch简介:为什么需要它?(基础篇)
  • 设计公司首页/南京百度seo排名
  • 电商平台项目运营策划方案/开封网站优化公司
  • wordpress 插件钩子/seoul national university
  • vps云主机可以做网站/推广专家
  • 网站建设 后台/电脑编程培训学校
  • 网站管理权限/网络营销是以什么为基础