当前位置: 代码迷 >> 综合 >> 16.3.1 字节序 测试
  详细解决方案

16.3.1 字节序 测试

热度:32   发布时间:2024-02-05 17:11:38.0
16.3.1 字节序
(1)概述1.字节序是一个处理器架构特性,用于指定数据内部的字节如何排序2.大段:像存储字符串一样,数据的高字节存储在内存的低字节中。3.小端:与大段相反	4.有的操作系统既可以配置为大端,也可以配置为小端5.TCP/IP协议栈使用大端字节序
(2)各平台的字节序---------------------------操作系统		字节序	---------------------------FreeBSD8.0		小端Linux3.2.0		小端Mac OS X10.6.8	小端Solaris 10		大端---------------------------
(3)处理器字节序与网络字节序转换uint32_t htonl(uint32_t hostint32);		// 返回以网络字节序表示的32位整数uint16_t htons(uint16_t hostint16);		// 返回以网络字节序表示的16位整数uint32_t ntohl(uint32_t netint32);		// 返回以主机字节序表示的32位整数uint16_t ntohs(uint16_t netint16);		// 返回以主机字节序表示的32位整数
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>/*测试目的: 测试系统的字节序测试结果: sys use litter-endian
*/int main(int argc, char **argv)
{int a = 0x12345678;char first = *((char *)&a);if (first == (char)0x12)printf("sys use big-endian\n");else if(first == (char)0x78)printf("sys use litter-endian\n");elseprintf("ERROR\n");return 0;
}

 

  相关解决方案