龙游网站建设茂县建设局网站

张小明 2026/1/2 19:47:01
龙游网站建设,茂县建设局网站,软文营销公司,余姚网站开发C语言大小端格式详解 #x1f525;作者简介#xff1a; 一个平凡而乐于分享的小比特#xff0c;中南民族大学通信工程专业研究生#xff0c;研究方向无线联邦学习 #x1f3ac;擅长领域#xff1a;驱动开发#xff0c;嵌入式软件开发#xff0c;BSP开发 ❄️作者主页作者简介 一个平凡而乐于分享的小比特中南民族大学通信工程专业研究生研究方向无线联邦学习擅长领域驱动开发嵌入式软件开发BSP开发❄️作者主页一个平凡而乐于分享的小比特的个人主页✨收录专栏c语言重要知识点总结本专栏旨在总结C语言学习过程中的易错点通过调试代码分析原理对重要知识点有更清晰的理解欢迎大家点赞 收藏 ⭐ 加关注哦一、什么是大小端格式大小端指的是多字节数据在内存中的存储顺序。1.小端格式 (Little Endian)低字节存放在低地址高字节存放在高地址像Intel x86/x64、ARM默认使用小端#includestdio.hintmain(){intnum0x12345678;// 十六进制数unsignedchar*p(unsignedchar*)#printf(值: 0x%x\n,num);printf(内存布局低地址-高地址:\n);for(inti0;isizeof(int);i){printf(地址 %p: 0x%x\n,pi,*(pi));}return0;}在小端机器上输出值: 0x12345678 内存布局低地址-高地址: 地址 0x7ffe...: 0x78 // 最低字节 地址 0x7ffe...: 0x56 地址 0x7ffe...: 0x34 地址 0x7ffe...: 0x12 // 最高字节2.大端格式 (Big Endian)高字节存放在低地址低字节存放在高地址像PowerPC、网络字节序使用大端// 假设在大端机器上运行上述代码输出为值:0x12345678内存布局低地址-高地址:地址0x7ffe...:0x12// 最高字节地址0x7ffe...:0x34地址0x7ffe...:0x56地址0x7ffe...:0x78// 最低字节二、如何检测大小端方法1使用联合体#includestdio.hunionEndianTest{inti;charc[sizeof(int)];};intisLittleEndian(){unionEndianTest test;test.i1;returntest.c[0]1;// 如果最低地址字节是1则是小端}intmain(){if(isLittleEndian()){printf(这是小端机器\n);}else{printf(这是大端机器\n);}return0;}方法2使用指针intisLittleEndian(){intnum1;return*(char*)num1;}三、字节序转换函数网络编程中经常需要转换#includearpa/inet.h// Linux// 或 #include winsock2.h // Windowsuint32_thtonl(uint32_thostlong);// 主机-网络32位uint16_thtons(uint16_thostshort);// 主机-网络16位uint32_tntohl(uint32_tnetlong);// 网络-主机32位uint16_tntohs(uint16_tnetshort);// 网络-主机16位// 示例uint32_thost_value0x12345678;uint32_tnetwork_valuehtonl(host_value);// 转换为网络字节序四、什么情况下使用哪种格式使用小端格式的情况x86/x64架构的CPUIntel、AMDARM处理器默认小端可切换Windows/Linux桌面系统多数嵌入式系统本地数据存储当不需要跨平台时优点数学运算方便从低字节开始处理类型转换简单使用大端格式的情况网络协议TCP/IP规定使用大端PowerPC架构某些旧版SPARC、MIPS系统Java虚拟机内部大端图像文件格式如BMP、JPEG某些硬件设备的寄存器优点人类阅读友好与书写顺序一致容易判断数值正负符号位在最低地址五、实际应用示例示例1网络数据包解析#includestdio.h#includestdint.h// 模拟从网络接收的数据大端格式voidparseNetworkPacket(constuint8_t*packet){// 前4字节是大端的IP地址uint32_tip(packet[0]24)|(packet[1]16)|(packet[2]8)|packet[3];// 使用ntohl转换成本机字节序ipntohl(*(uint32_t*)packet);// 更标准的做法printf(IP地址: %u.%u.%u.%u\n,(ip24)0xFF,(ip16)0xFF,(ip8)0xFF,ip0xFF);}示例2文件格式处理// 读取BMP文件头大端格式#pragmapack(push,1)typedefstruct{uint16_tsignature;// BM大端uint32_tfileSize;// 大端uint16_treserved1;uint16_treserved2;uint32_tdataOffset;// 大端}BMPHeader;#pragmapack(pop)voidreadBMP(constchar*filename){FILE*filefopen(filename,rb);BMPHeader header;fread(header,sizeof(header),1,file);// 转换字节序header.signaturentohs(header.signature);header.fileSizentohl(header.fileSize);header.dataOffsetntohl(header.dataOffset);fclose(file);}六、编写跨平台代码的建议使用标准转换函数htonl/ntohl等避免直接内存拷贝不同字节序的数据明确数据格式在文档中说明测试时考虑字节序使用固定宽度整数类型uint8_t, uint32_t等// 安全的字节序无关的读取uint32_treadUint32BigEndian(constuint8_t*buffer){return(buffer[0]24)|(buffer[1]16)|(buffer[2]8)|buffer[3];}uint32_treadUint32LittleEndian(constuint8_t*buffer){returnbuffer[0]|(buffer[1]8)|(buffer[2]16)|(buffer[3]24);}总结小端低字节在低地址常见于Intel CPU大端高字节在低地址用于网络和某些硬件网络通信必须使用大端本地存储通常使用本机字节序跨平台开发要注意字节序转换理解大小端对网络编程、文件格式解析、硬件交互等至关重要
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

企业网站建设选题的依据及意义网站管理功能图

(200分)- 无向图染色(Java & JS & Python)题目描述给一个无向图染色,可以填红黑两种颜色,必须保证相邻两个节点不能同时为红色,输出有多少种不同的染色方案?输入描述第一行输入M(图中节点数) N(边数…

张小明 2025/12/30 19:54:03 网站建设

哈尔滨免费建站模板公司做网站图片

第一章:Dify格式转换没人告诉你的秘密在使用 Dify 平台进行 AI 应用开发时,数据格式的精准转换是决定工作流稳定性的关键。许多用户忽略了其内置转换器对特定字段类型的隐式处理规则,导致输出结果与预期偏差。理解默认 JSON 解析行为 Dify 在…

张小明 2025/12/31 4:52:28 网站建设

网站开发项目管理步骤网站建站方式

本文详细介绍了如何使用Python搭建自己的MCP服务。通过uv工具初始化项目,利用FastMCP SDK开发服务器端并创建自定义工具(如天气查询),同时介绍了使用Cherry Studio作为MCP Host加载服务的方法。最后展示了如何开发Python MCP Clie…

张小明 2025/12/31 4:52:27 网站建设

网站主办者和所有者区别网站设计网站维护

中石油旗下子公司大文件传输系统技术方案 一、项目背景与需求分析 作为中石油集团旗下专注于能源信息化领域的子公司,我司长期服务于政府及军工单位,在能源管理、安全生产等关键领域积累了丰富的行业经验。本次政府招投标项目提出的大文件传输需求具有…

张小明 2025/12/31 17:24:02 网站建设

网站是什么程序做的发布平台是什么

全连接神经网络深度学习终极指南:从零基础到实战应用完整教程 【免费下载链接】全连接神经网络多层感知机PPT详细介绍 这份PPT资源是学习全连接神经网络(多层感知机,MLP)的绝佳指南,内容全面且易于理解。它从单层感知机…

张小明 2026/1/1 12:27:29 网站建设

wordpress单页面网站怎么做合肥做网站的

Python脑成像分析实战指南:从数据困扰到高效解决方案 【免费下载链接】neurosynth Neurosynth core tools 项目地址: https://gitcode.com/gh_mirrors/ne/neurosynth 你是否曾经面对海量的脑成像数据感到手足无措?每次分析都需要手动筛选文献、处…

张小明 2025/12/31 4:52:30 网站建设