C++中关于数据16进制输出的方法
时间:2022-08-31 19:30:00
当我们编译串口时,我们经常使用串口数据。串口数据多为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 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; }
运行结果如下: