【C/C++】uin8_t uint16_t uint32_t相互转换

简介: uin8_t uint16_t uint32_t 数据类型相互转换

1. uint8_t 转uint16_t

    uint8_t u8[4] = {0x12,0x34,0x56,0x78};
    uint16_t u16[2] = {0};
    
    u16[0] = (u8[1] << 8) + u8[0];
    u16[1] = (u8[3] << 8) + u8[2];

2. uint8_t 转uint32_t

    uint8_t u8[4] ={0x12,0x34,0x56,0x78};
    uint32_t u32 = 0;
    
    u32 = (u8[3] << 24) + (u8[2] << 16) + (u8[1] << 8) + u8[0];
    

3. uint16_t 转uint8_t

    uint8_t u8[4] = {0};
    uint16_t u16[2] = {0x3412,0x7856};

    u8[0] = u16[0] & 0xFF;
    u8[1] = (u16[0] >> 8) & 0xFF;
    u8[2] = u16[1] & 0xFF;
    u8[3] = (u16[1] >> 8) & 0xFF;

4. uint16_t 转uint32_t

    uint16_t u16[2] = {0x1234,0x5678};
    uint32_t u32 = 0;  
      
    u32 = (u16[1] << 16) + u16[0];
    

5. uint32_t 转uint8_t

    uint8_t u8[4] ={0};
    uint32_t u32 = 0x78563412;
    
    u8[0] = u32 & 0xFF;
    u8[1] = (u32 >> 8) & 0xFF;
    u8[2] = (u32 >> 16) & 0xFF;
    u8[3] = (u32 >> 24) & 0xFF;

6. uint32_t 转uint16_t

    uint8_t u16[2] ={0};
    uint32_t u32 = 0x56781234;
    
    u16[0] = u32 & 0xFFFF;
    u16[1] = (u32 >> 16) & 0xFFFF;
相关文章
|
12月前
|
C++
《C++避坑神器·十四》项目路径获取及WCHAR 和char* 的相互转换
《C++避坑神器·十四》项目路径获取及WCHAR 和char* 的相互转换
82 0
|
C++
C++实现中文大写与阿拉伯数字的相互转换(类封装)
C++实现中文大写与阿拉伯数字的相互转换(类封装)
595 0
|
编解码 网络协议 5G
【C/C++】uin8_t uint16_t uint32_t uint64_t数据类型解析
为了代码编写和阅读方便,我们通常会将数据类型名称声明为简写方式,即uin8_t/uint16_t/uint32_t/uint64_t,或者UINT8/UINT16/UINT32/UINT64。
1579 1
【C/C++】uin8_t uint16_t uint32_t uint64_t数据类型解析
C++学习——CString,char * ,string的相互转换
C++学习——CString,char * ,string的相互转换
237 0
|
编译器 C++
C/C++ - enum 与 int 相互转换
C/C++ - enum 与 int 相互转换
1589 0
|
C++
深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
本篇文章是对c++中的char*与wchar_t*与string以及wstring之间的相互转换进行了详细的分析介绍,需要的朋友参考下-复制代码 代码如下:    #ifndef USE_H_      #define USE_H_      #include       #include   ...
1606 0
|
23天前
|
存储 编译器 对象存储
【C++打怪之路Lv5】-- 类和对象(下)
【C++打怪之路Lv5】-- 类和对象(下)
22 4
|
23天前
|
编译器 C语言 C++
【C++打怪之路Lv4】-- 类和对象(中)
【C++打怪之路Lv4】-- 类和对象(中)
20 4
|
23天前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
17 1