首页 > 其他分享 >大端序,小端序,Big-endian, Little-endian

大端序,小端序,Big-endian, Little-endian

时间:2024-04-02 09:12:42浏览次数:10  
标签:大端序 字节 Big 小端序 存储 endian Byte

在计算机中,字节序(byte order)指的是多字节数据在存储时字节的排列顺序。主要有两种字节序:大端序(big-endian)和小端序(little-endian)。

  • 大端序(Big-endian):在大端序中,最高有效字节(Most Significant Byte,MSB)存储在最低的内存地址,而最低有效字节(Least Significant Byte,LSB)存储在最高的内存地址。
  • 小端序(Little-endian):在小端序中,最低有效字节(LSB)存储在最低的内存地址,而最高有效字节(MSB)存储在最高的内存地址。

举例来说,对于一个四字节的整数 0x12345678

  • 在大端序中,内存中的存储顺序为 12 34 56 78
  • 在小端序中,内存中的存储顺序为 78 56 34 12

下面是一个简单的 C++ 示例来演示大端序:

#include <iostream>

int main() {
    // 定义一个整数
    int num = 0x12345678;

    // 获取整数的地址
    unsigned char* ptr = reinterpret_cast<unsigned char*>(&num);

    // 打印每个字节的值及其地址
    std::cout << "Memory layout in big-endian order:" << std::endl;
    for (int i = sizeof(num) - 1; i >= 0; --i) {
        std::cout << "Byte " << i << ": " << std::hex << static_cast<int>(ptr[i]) << " (Address: " << reinterpret_cast<void*>(&ptr[i]) << ")" << std::endl;
    }

    return 0;
}

 

/**
        Memory layout in big-endian order:
        Byte 3: 12 (Address: 0x7ffc761e9bff)
        Byte 2: 34 (Address: 0x7ffc761e9bfe)
        Byte 1: 56 (Address: 0x7ffc761e9bfd)
        Byte 0: 78 (Address: 0x7ffc761e9bfc)
*/

 

在这个示例中,我们首先定义了一个整数 num,然后通过指针将其转换为字节序列。然后,我们逆序遍历字节序列,并打印出每个字节的值及其地址。由于我们的系统是大端序,因此打印结果会按照大端序的顺序显示每个字节的值及其地址。

标签:大端序,字节,Big,小端序,存储,endian,Byte
From: https://www.cnblogs.com/music-liang/p/18109805

相关文章

  • 论文:Improving Entity Disambiguation by Reasoning over a Knowledge Base翻译笔记(通
    文章目录论文题目:通过在知识库中进行推理来改进实体消歧摘要1介绍2相关工作2.1带有知识库上下文的勃起功能障碍(ED)问题2.2基于知识图谱嵌入的ED2.3全局ED(实体解析)2.4多模块的实体识别3拟议的方法3.1任务表述3.2概述3.3提及表示3.4初始实体得分ψ~a~3.4.1实体......
  • BigDecimal
    概述Immutable,arbitrary-precisionsigneddecimalnumbers.不可变的、任意精度的有符号的十进制数;A{@codeBigDecimal}consistsofanarbitraryprecisioninteger<i>unscaledvalue</i>anda32-bitinteger<i>scale</i>.  Ifzeroorpositive,thescal......
  • const [increaseBigCats, increaseSmallCats] = useCatStore( (state) => [state.incr
    const[increaseBigCats,increaseSmallCats]=useCatStore((state)=>[state.increaseBigCats,state.increaseSmallCats],shallow);这段代码是在使用zustand这个React状态管理库。zustand提供了一种简洁的方式来创建可复用的状态存储,并允许组件通过hoo......
  • EI级!高创新原创未发表!VMD-TCN-BiGRU-MATT变分模态分解卷积神经网络双向门控循环单元融
    EI级!高创新原创未发表!VMD-TCN-BiGRU-MATT变分模态分解卷积神经网络双向门控循环单元融合多头注意力机制多变量时间序列预测(Matlab)目录EI级!高创新原创未发表!VMD-TCN-BiGRU-MATT变分模态分解卷积神经网络双向门控循环单元融合多头注意力机制多变量时间序列预测(Matlab)预测......
  • BigKey问题
    当AOF日志写入了很多的大Key,AOF日志文件的大小会很大,那么很快就会触发AOF重写机制。当AOF写回策略配置了Always策略,如果写入是一个大Key,主线程在执行fsync()函数的时候,阻塞的时间会比较久,因为当写入的数据量很大的时候,数据同步到硬盘这个过程是很耗时的。......
  • BigDecimal
    3.BigDecimal3.1介绍BigDecimal是Java在java.math包中提供的线程安全的API类。用于解决小数运算中,出现的不精确问题3.2创建对象BigDecimal所创建的是对象,故我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须......
  • JB Wants to Earn Big Money(The 19th Zhejiang Provincial Collegiate Programming Co
    #include<bits/stdc++.h>#defineendl'\n'usingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();signedmain(){#ifdefGordenfreopen("in.txt","rt",stdin);freopen......
  • F5 BIG-IP Next 20.1.0 - 多云安全和应用交付
    F5BIG-IPNext20.1.0-多云安全和应用交付BIG-IP是硬件平台和软件解决方案的集合,提供专注于安全性、可靠性和性能的服务请访问原文链接:https://sysin.org/blog/f5-big-ip-next/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgBIG-IPNext您所熟知和信赖的BIG-......
  • BigDecimal值在java比较的两种方法
    1、使用equals()方法不但要求两个BigDecimal的值相等,还要求它们的scale()相等。BigDecimald1=newBigDecimal("123.45");BigDecimald2=newBigDecimal("123.45000");System.out.println(d1.equals(d2));//false,因为scale不同System.out.println(d1.equa......
  • bigget_nft领取脚本
    #coding:utf-8#importuiautomator2asu2importtimefromtqdmimporttqdmfromloguruimportloggerdefxpath是否存在(xpath,timeout=30):forindexinrange(0,timeout):wallet_ele=d.xpath(xpath).existsif(wallet_ele):log......