zoukankan      html  css  js  c++  java
  • 大端模式与小端模式

    什么是大端和小端

    Big-Endian和Little-Endian的定义如下:
    1) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
    2) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端

    举一个例子,比如数字0x12 34 56 78在内存中的表示形式为:

    1)大端模式:

    低地址 -----------------> 高地址
    0x12  |  0x34  |  0x56  |  0x78

    2)小端模式:

    低地址 ------------------> 高地址
    0x78  |  0x56  |  0x34  |  0x12

    大端转小端16位

    1. #define BigtoLittle16(A)   (( ((uint16)(A) & 0xff00) >> 8)    |   
    2.                                        (( (uint16)(A) & 0x00ff) << 8))  

    大端转小端32位

    1. #define BigtoLittle32(A)   ((( (uint32)(A) & 0xff000000) >> 24) |   
    2.                                        (( (uint32)(A) & 0x00ff0000) >> 8)   |   
    3.                                        (( (uint32)(A) & 0x0000ff00) << 8)   |   
    4.                                        (( (uint32)(A) & 0x000000ff) << 24))  

    小端转大端 16位

    // 16位 将2个字节,转换成大端
    static short Little2Big(byte A, byte B) {
    return (short) (((short) (B) & 0x00ff) << 8 | ((short) (A) & 0x00ff));
    }

  • 相关阅读:
    牛客网 CSL的英语考试
    SDNU 1016.矩形合并
    SDNU 1412.Huffuman树(优先队列)
    HDU
    HDU
    HDU
    SDNU 1504.B.Fibonacci
    Find them, Catch them(种类并查集)
    golang中的net/rpc包
    gRPC
  • 原文地址:https://www.cnblogs.com/zhaoleigege/p/5482695.html
Copyright © 2011-2022 走看看