uint64_t data1 = 0x5a;uint64_t data2 = 0xbf;rt_kprintf("data1 %x data2 %x\n", data1, data2);
uint64_t data1 = 0x5a;
uint64_t data2 = 0xbf;
rt_kprintf("data1 %x data2 %x\n", data1, data2);
打印结果:
data1 0 data2 5a
好像是个BUG?
查看更多
用%x的时候不能传64位的值进去
%x
uint64_t data1 = 0xA55AA55AA55AA55A; uint64_t data2 = 0xBFFBBFFBBFFBBFFB; rt_kprintf("data1 0x%llX data2 0x%llX\n", data1, data2); rt_kprintf("data1 0x%X data2 0x%X\n", (uint32_t)data1, (uint32_t)data2); rt_kprintf("data1 0x%X data2 0x%X\n", data1, data2);
uint64_t data1 = 0xA55AA55AA55AA55A;
uint64_t data2 = 0xBFFBBFFBBFFBBFFB;
rt_kprintf("data1 0x%llX data2 0x%llX\n", data1, data2);
rt_kprintf("data1 0x%X data2 0x%X\n", (uint32_t)data1, (uint32_t)data2);
rt_kprintf("data1 0x%X data2 0x%X\n", data1, data2);
data1 0xA55AA55AA55AA55A data2 0xBFFBBFFBBFFBBFFBdata1 0xA55AA55A data2 0xBFFBBFFBdata1 0x40 data2 0xA55AA55A
data1 0xA55AA55AA55AA55A data2 0xBFFBBFFBBFFBBFFB
data1 0xA55AA55A data2 0xBFFBBFFB
data1 0x40 data2 0xA55AA55A
正常计算有没有问题?
这是你用法有问题,不是bug,占位符x的意思是,这里要输出一个unsigned int类型的值,而unsigned int不是64位的你可以看看标准是怎么规定的,虽然rt_kprintf不是printf,但是应该是符合标准的
正常计算好像没有问题吧?
欢迎发表与嵌入式相关的技术分享、开发技巧、工具介绍、技术设想、职业心得、行业评论等对他人有启发,排版优雅的文章
回到 顶部
发布 问题
分享 好友
手机 浏览
投诉 建议
回到 底部
对,厉害啊。