如何在32位MCU用printf()函数打印64位数据

1.

在32位MCU上定义64位变量:

unsigned long long time_base;
unsigned long long temp_time;

2.

调用打印函数:

printf("RFID:time_base:%d\r\n",time_base);
printf("RFID:temp_time:%d\r\n",temp_time);
printf("RFID:Run time:%dms\r\n",time_base - temp_time);

显示异常
在这里插入图片描述

3.

改用16进制打印显示:

printf("RFID:time_base:0x%x\r\n",time_base);
printf("RFID:temp_time:0x%x\r\n",temp_time);
printf("RFID:Run time:0x%xms\r\n",time_base - temp_time);

也打印显示异常:
在这里插入图片描述

4.

在32位MCU上打印64位变量,需要用ll进行修饰:

4.1

代码:

printf("RFID:time_base:%lld\r\n",time_base);
printf("RFID:temp_time:%lld\r\n",temp_time);
printf("RFID:Run time:%lldms\r\n",time_base - temp_time);

打印显示正确:
在这里插入图片描述

4.2

代码

printf("RFID:time_base:0x%llx\r\n",time_base);
printf("RFID:temp_time:0x%llx\r\n",temp_time);
printf("RFID:Run time:0x%llxms\r\n",time_base - temp_time);

打印显示正确:
在这里插入图片描述文章来源地址https://uudwc.com/A/xG5qk

原文地址:https://blog.csdn.net/weixin_39234322/article/details/133158141

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年10月05日 13:42
阿里云网络、数据中心和服务器技术创新优势说明
下一篇 2023年10月05日 14:42