【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;
相关文章
《C++避坑神器·十四》项目路径获取及WCHAR 和char* 的相互转换
《C++避坑神器·十四》项目路径获取及WCHAR 和char* 的相互转换
387 0
|
C++
C++实现中文大写与阿拉伯数字的相互转换(类封装)
C++实现中文大写与阿拉伯数字的相互转换(类封装)
1225 0
C++学习——CString,char * ,string的相互转换
C++学习——CString,char * ,string的相互转换
478 0
|
编译器 C++
C/C++ - enum 与 int 相互转换
C/C++ - enum 与 int 相互转换
2447 0
|
C++
深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
本篇文章是对c++中的char*与wchar_t*与string以及wstring之间的相互转换进行了详细的分析介绍,需要的朋友参考下-复制代码 代码如下:    #ifndef USE_H_      #define USE_H_      #include       #include   ...
1998 0
|
人工智能 机器人 编译器
c++模板初阶----函数模板与类模板
class 类模板名private://类内成员声明class Apublic:A(T val):a(val){}private:T a;return 0;运行结果:注意:类模板中的成员函数若是放在类外定义时,需要加模板参数列表。return 0;
316 0
|
存储 编译器 程序员
c++的类(附含explicit关键字,友元,内部类)
本文介绍了C++中类的核心概念与用法,涵盖封装、继承、多态三大特性。重点讲解了类的定义(`class`与`struct`)、访问限定符(`private`、`public`、`protected`)、类的作用域及成员函数的声明与定义分离。同时深入探讨了类的大小计算、`this`指针、默认成员函数(构造函数、析构函数、拷贝构造、赋值重载)以及运算符重载等内容。 文章还详细分析了`explicit`关键字的作用、静态成员(变量与函数)、友元(友元函数与友元类)的概念及其使用场景,并简要介绍了内部类的特性。
492 0
|
编译器 C++ 容器
【c++11】c++11新特性(上)(列表初始化、右值引用和移动语义、类的新默认成员函数、lambda表达式)
C++11为C++带来了革命性变化,引入了列表初始化、右值引用、移动语义、类的新默认成员函数和lambda表达式等特性。列表初始化统一了对象初始化方式,initializer_list简化了容器多元素初始化;右值引用和移动语义优化了资源管理,减少拷贝开销;类新增移动构造和移动赋值函数提升性能;lambda表达式提供匿名函数对象,增强代码简洁性和灵活性。这些特性共同推动了现代C++编程的发展,提升了开发效率与程序性能。
591 12
|
编译器 C++
类和对象(下)C++
本内容主要讲解C++中的初始化列表、类型转换、静态成员、友元、内部类、匿名对象及对象拷贝时的编译器优化。初始化列表用于成员变量定义初始化,尤其对引用、const及无默认构造函数的类类型变量至关重要。类型转换中,`explicit`可禁用隐式转换。静态成员属类而非对象,受访问限定符约束。内部类是独立类,可增强封装性。匿名对象生命周期短,常用于临时场景。编译器会优化对象拷贝以提高效率。最后,鼓励大家通过重复练习提升技能!