资讯详情

C++中关于数据16进制输出的方法

当我们编译串口时,我们经常使用串口数据。串口数据多为16进制0x16说。在操作过程中,我们经常获得10进制的数据,那么如何将10进制的数据转换为16进制呢?我在网上搜索了很多方法,最后在导师的建议下使用了最简单的方法供您参考。

例如,我们得到一个数据:

double b = 123456789.987;

因为我想使用它的整数部分,所以数据转换w:

__int64 B = __int64(b);

我们得到了64个整形手术w1.接下来,我们将就w1以0x将16进制形式插入数组:

unsigned char A[46] = { 0x12, 0xAB, 0x34, 0xCD};

因为,B它以16进制的形式存储在计算机中,因此我们采用直接移位的方式进行插入。例如,我想以四个字节的形式将B插入A:

A[4] = (B >> 24) & 0xFF; A[5] = (B >> 16) & 0xFF; A[6] = (B >> 8) & 0xFF; A[7] = (B >> 0) & 0xFF;

整体代码如下:

#include<stdio.h> int main() {  double b = 123456789.987;  __int64 B = __int64(b);  unsigned char A[46] = { 0x12, 0xAB, 0x34, 0xCD };    A[4] = (B >> 24) & 0xFF;  A[5] = (B >> 16) & 0xFF;  A[6] = (B >> 8) & 0xFF;  A[7] = (B >> 0) & 0xFF;   for (int i = 0; i < 8; i  )   {   printf("X ", A[i]);  }  return 0; }

运行结果如下:

标签: 连接器xcd45t4k1p40

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台