zoukankan      html  css  js  c++  java
  • 主机字节序的大端和小端

    1.定义:
        大端模式(Big Endian):数据的高字节,保存在内存的低地址中;数据的低字节,保存在内存的高地址中。
        小端模式(Little Endian):数据的高字节,保存在内存的高地址中;数据的低字节,保存在内存的低地址中。
     
    2. 判断操作系统是大端还是小端:
    bool IsBigEndian()
    {
        union NUM
        {
            int a;
            char b;
        }num;
        num.a = 0x1234;
        if(num.b == 0x12)     //低位地址存高位数值,说明是大端
            return true;
        else
            return false;
    }
    3. 大端和小端的转换函数:
    (1)32位系统下:
    uint32_t reversebytes_32(uint32_t value)
    {
        return (value&0x000000FF)<<24 | (value&0x0000FF00)<<8 | (value&0x00FF0000)>>8 | (value&0xFF000000)>>24;
    }
    (2)64位系统下:
    uint64_t reversebytes_64(uint64_t value)
    {
        uint32_t low_uint64 = uint64_t(reversebytes_32(uint32_t(value)));  //低32位转换
        uint64_t high_uint64 = (uint64_t)reversebytes_32(uint32_t(value>>32)); //高32位转换
        return (low_uint64<<32) + high_uint64;
    }
  • 相关阅读:
    匿名变量
    Vue父子组件传值与非父子传值
    TCP三次握手分析
    @media screen 响应式布局
    H5新增多媒体标签
    npm+node+vue配置一套带走
    vue+echarts全国疫情地图
    js本地时间格式化
    vue iview分页
    Vue打包后访问静态资源路径问题
  • 原文地址:https://www.cnblogs.com/ladawn/p/8591104.html
Copyright © 2011-2022 走看看