• 主机字节序的大端和小端


    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;
    }
  • 相关阅读:
    cmake使用
    CMake...
    信息熵相关知识总结
    最强NLP模型-BERT
    问答系统总结
    检索问答模型
    文本分类-TextCNN
    机器学习-Logistic回归
    Attention注意力机制介绍
    机器学习-聚类Clustering
  • 原文地址:https://www.cnblogs.com/ladawn/p/8591104.html
Copyright © 2020-2023  润新知