zoukankan      html  css  js  c++  java
  • 对字节大端对齐和小端对齐的理解

             做音频视频处理的过程中,经常看到文档中写着LITTLE ENDIAN或者BIG ENDIAN unsigned integer的文字,其实就是告诉我们用大端或者小端方式处理字节数,例如文件的某一处的16进制数为FF 10 00 00,如果按照

             大端模式:数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中,这种存储模式就类似把数据当做字符串顺序处理,例如:数据中两个字节按顺序为:FE 10 ,它表示的一个数就是0xFE10。

             换句话说:内存的低地址存放着数据高位;

            小端模式:数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中,这种存储方式就是将地址的高低和数据的位结合起来,前面的例子按照小端模式表示,应该为:0x10FE。

            换句话说:内存的低地址存放着数据低位。

    例如 char p[2];,它用大端模式表示一个数的计算方式为:

    unsigned int  result =p[0];
    result =(result <<8)|p[1];

    用小端模式表示一个数的计算方式为:

    unsigned int  result =p[0];
    result =(p[1]<<8)|result;

              我在用的过程中理解后,总结出来我的认识。

  • 相关阅读:
    申论1
    why factory pattern and when to use factory pattern
    jvm的字符串池
    is assembler instruction and machine instuction atomic
    jvm本身的多线程机制
    final
    java类的加载
    path和classpath的用途
    jar -cmf file1 file2 file3命令
    MANIFEST.MF中的MF是什么意思
  • 原文地址:https://www.cnblogs.com/candycaicai/p/1912986.html
Copyright © 2011-2022 走看看