#include <stdio.h>
#include <windows.h>
#include "Hexadecimal_conversion.h"
int main()
{
uint32_t u32=0x6789ABCD,a32,b32;
uint16_t u16=0x89AB, a16,b16=0x1234;
uint8_t u8=0x12,a8,b8=0x34,c8=0x56,d8=0x78;
printf("This is a program of Hexadecimal conversion.\n\n");
multiple_data DATAP;
DATAP=u32_turn_Two_HEX(u32);
printf("The following is the conversion of 32-bit data into two hex data.\n");
printf("32-bit:0x%x=>hex1:0x%x,hex2:0x%x\n\n",u32,DATAP.hex_DATA1,DATAP.hex_DATA2);
DATAP=HEX_turn_Two_OCT(u16);
printf("The following is the conversion of hex data into two OCT data.\n");
printf("hex:0x%x=>oct1:0x%x,oct2:0x%x\n\n",u16,DATAP.OCT_DATA1,DATAP.OCT_DATA2);
a32=Two_HEX_turn_32(u16,b16);
printf("The following is the conversion of two HEX into 32-bit data.\n");
printf("hex1:0x%x, hex2:0x%x =>32-bit:0x%x\n\n",u16,b16,a32);
a16=Two_OCT_turn_HEX(u8,b8);
printf("The following is the conversion of two OCT into HEX data.\n");
printf("OCT1:0x%x,OCT2:0x%x =>hex:0x%x\n\n",u8,b8,a16);
DATAP=u32_turn_four_OCT(u32);
printf("The following is the conversion of 32-bit into four OCT.\n");
printf("32-bit:0x%x=>OCT1:0x%x,OCT2:0x%x,OCT3:0x%x,OCT4:0x%x\n\n",u32,DATAP.OCT_DATA1,DATAP.OCT_DATA2,DATAP.OCT_DATA3,DATAP.OCT_DATA4);
b32=four_OCT_turn_32(u8,b8,c8,d8);
printf("The following is the conversion of four OCT into 32-bit.\n");
printf("OCT1:0x%x,OCT2:0x%x,OCT3:0x%x,OCT4:0x%x==>32-bit:0x%x\n",u8,b8,c8,d8,b32);
system("pause");
return 0;
}
uint32_t Two_HEX_turn_32(uint16_t DATA1,uint16_t DATA2)
{
uint32_t DATA_32;
DATA_32=(DATA1<<16)|DATA2;//DATA1在高位,DATA2在低位
return DATA_32;
}
uint16_t Two_OCT_turn_HEX(uint8_t DATA1,uint8_t DATA2)
{
uint32_t DATA_16;
DATA_16=(DATA1<<8)|DATA2;//DATA1在高位,DATA2在低位
return DATA_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;
}
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;
}
struct multiple_data u32_turn_four_OCT(uint32_t DATA)
{
struct multiple_data DATAOCT;
DATAOCT.OCT_DATA1=(DATA>>24) & 0XFF; //高8位
DATAOCT.OCT_DATA2=(DATA>>16) & 0XFF;
DATAOCT.OCT_DATA3=(DATA>>8) & 0XFF;
DATAOCT.OCT_DATA4=DATA & 0XFF; //低8位
return DATAOCT;
}
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<<24)|(DATA2<<16)|(DATA3<<8)|(DATA4);//DATA_32=[DATA1][DATA2][DATA3][DATA4]
return DATA_32;
}

跋扈洋

- 粉丝: 7875
最新资源
- awtk-mvvm-C语言资源
- 光伏混合储能VSG并网Simulink仿真模型:功率分配、一次调频、无功调压与虚拟阻抗 指南
- 青梧商城B2B2C-C++资源
- 802.11a OFDM MATLAB仿真代码!(MATLAB源代码).zip
- matlab图像处理代码MATLAB源代码.zip
- 基于COMSOL仿真的铝板Lamb波检测与阵列式导波成像技术研究
- 用MATLAB对两幅图片进行图像匹配MATLAB源代码.zip
- matlab实现视频中动态目标跟踪MATLAB源代码.zip
- 基于卷积神经网络(CNN)的锂电池SOH估算方法研究与实现 卷积神经网络
- 高频注入全套方案详解:仿真模型生成代码,Simulink与Matlab卓越效果,Keil源码工程及开发板资源全清单 - 高频注入
- 电动汽车动力系统匹配与动力经济性计算模型:提升设计开发效率的实际应用工具 参考
- Comsol仿真技术在变压器铁心磁致伸缩振动分析中的应用与优化
- 自动驾驶控制器设计与开发方案征询书(终版).doc
- 移动互联网与教育PPT课件.ppt
- 工业机器人现场编程-绝对运动和相对运动编程-PPT课件.pptx
- 供用电网络接线.ppt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



评论0