C语言端序

本文深入探讨了C语言中处理不同平台上的字节序问题,包括小端序和大端序的概念,以及如何使用C语言的标准库或自定义函数进行字节序转换。通过理解端序,开发者可以在跨平台的程序中正确地处理数据存储和通信。
摘要由CSDN通过智能技术生成

C语言端序


Endianism,端序,是指用来存储数据的方法,它定义了数据类型对字节进行寻址的方式。

两种端序方式:
1、Little-endian,小端序,是将低位字节存储在内存偏移地址较低的地址中,将高位字节存储在内存偏移地址较高的地址中;
2、Big-endian,大端序,则是将低位字节存储在内存偏移地址较高的地址中,将高位字节存储在内存偏移地址较低的地址中。

比如:
0x12345678 在 big-endian 系统上的布局
内存偏移量     0     1     2     3
内存内容       0x12     0x34     0x56     0x78

0x12345678 在 little-endian 系统上的布局
内存偏移量     0     1     2     3
内存内容     0x78     0x56     0x34     0x12

机器大小端和环境相关,可以使用下面的办法判断机器的大小端:
#include <cstdlib>
#include <iostream>

using namespace std;

union test
{
    int i;
    char c;
};
   
int main()
{
    union test t;
    t.i = 0x12345678;
    if(t.c == 0x78)
        cout<<"Lit
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值