进制转换-不同位数的数据相互转换(C/C++实现)
引言
- 引言
- 功能设计
- 准备工作
- 软件实现
- 32位数据转成2个16位数据
- 16位数据转成2个8位数据
- 2个16位数据转成1个32位数据
- 2个8位数据转成1个16位数据
- 32位数据转成4个8位数据
- 4个8位数据转成1个32位数据
- 调试程序
- 调试结果
- 后续
无论是在纯软件开发还是嵌入式开发,进制转换都是必不可少的程序。尤其对于嵌入式开发,因为数据和地址的频繁使用,进制转换的使用频率非常高。比如常用的32位数据分成两个16位数据,2个八位数据转成一个16位数据等。本文基于C/C++来编写程序,实现我们常用的几个进制转换功能。
功能设计- 32位数据转成2个16位数据
- 16位数据转成2个8位数据
- 2个16位数据转成1个32位数据
- 2个8位数据转成1个16位数据
- 32位数据转成4个8位数据
- 4个8位数据转成1个32位数据
-
下载VSCode
-
下载MinGW编译器
-
VSCode 配置C/C++环境
32位数据拆分成两个16位数据,其实就是将32位数据的高16位和低16位数据分别赋值给两个16位数据。
struct multiple_data u32_turn_Two_HEX(uint32_t DATA)
{
struct multiple_data DATAHEX;
DATAHEX.hex_DATA1=(DATA>>16) & 0XFFFF; //高16位
DATAHEX.hex_DATA2=DATA & 0XFFFF; //低16位
return DATAHEX;
}
这个程序很好理解,就是将32位数据的高16位左移16位,此时数据应该从0x **** ****编程0x0000 ****。之后再将此值赋给一个16位数据即可。低位直接与0xFFFF后赋值给一个16位数据。
16位数据转成2个8位数据struct multiple_data HEX_turn_Two_OCT(uint16_t DATA)
{
struct multiple_data DATAOCT;
DATAOCT.OCT_DATA1=(DATA>>8) & 0XFF; //高8位
DATAOCT.OCT_DATA2=DATA & 0XFF; //低8位
return DATAOCT;
}
2个16位数据转成1个32位数据
uint32_t Two_HEX_turn_32(uint16_t DATA1,uint16_t DATA2)
{
uint32_t DATA_32;
DATA_32=(DATA116) & 0XFF;
DATAOCT.OCT_DATA3=(DATA>>8) & 0XFF;
DATAOCT.OCT_DATA4=DATA & 0XFF; //低8位
return DATAOCT;
}
4个8位数据转成1个32位数据
uint32_t four_OCT_turn_32(uint8_t DATA1,uint8_t DATA2,uint8_t DATA3,uint8_t DATA4)
{
uint32_t DATA_32;
DATA_32=(DATA1
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?