【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;
相关文章
|
8月前
|
C++
《C++避坑神器·十四》项目路径获取及WCHAR 和char* 的相互转换
《C++避坑神器·十四》项目路径获取及WCHAR 和char* 的相互转换
53 0
|
12月前
|
C++
C++实现中文大写与阿拉伯数字的相互转换(类封装)
C++实现中文大写与阿拉伯数字的相互转换(类封装)
413 0
|
编解码 网络协议 5G
【C/C++】uin8_t uint16_t uint32_t uint64_t数据类型解析
为了代码编写和阅读方便,我们通常会将数据类型名称声明为简写方式,即uin8_t/uint16_t/uint32_t/uint64_t,或者UINT8/UINT16/UINT32/UINT64。
1360 1
【C/C++】uin8_t uint16_t uint32_t uint64_t数据类型解析
C++学习——CString,char * ,string的相互转换
C++学习——CString,char * ,string的相互转换
215 0
|
编译器 C++
C/C++ - enum 与 int 相互转换
C/C++ - enum 与 int 相互转换
1276 0
|
C++
深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
本篇文章是对c++中的char*与wchar_t*与string以及wstring之间的相互转换进行了详细的分析介绍,需要的朋友参考下-复制代码 代码如下:    #ifndef USE_H_      #define USE_H_      #include       #include   ...
1555 0
|
2天前
|
C++
【C++】日期类Date(详解)②
- `-=`通过复用`+=`实现,`Date operator-(int day)`则通过创建副本并调用`-=`。 - 前置`++`和后置`++`同样使用重载,类似地,前置`--`和后置`--`也复用了`+=`和`-=1`。 - 比较运算符重载如`&gt;`, `==`, `&lt;`, `&lt;=`, `!=`,通常只需实现两个,其他可通过复合逻辑得出。 - `Date`减`Date`返回天数,通过迭代较小日期直到与较大日期相等,记录步数和符号。 ``` 这是236个字符的摘要,符合240字符以内的要求,涵盖了日期类中运算符重载的主要实现。
|
4天前
|
C++
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
7 0
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
|
2天前
|
存储 编译器 C++
【C++】类和对象④(再谈构造函数:初始化列表,隐式类型转换,缺省值
C++中的隐式类型转换在变量赋值和函数调用中常见,如`double`转`int`。取引用时,须用`const`以防修改临时变量,如`const int& b = a;`。类可以有隐式单参构造,使`A aa2 = 1;`合法,但`explicit`关键字可阻止这种转换。C++11起,成员变量可设默认值,如`int _b1 = 1;`。博客探讨构造函数、初始化列表及编译器优化,关注更多C++特性。