当前位置: 首页 > news >正文

C语言巧妙打印64位整数

使用C语言打印64位整数时,如果用的是32位编译器,那么打印如下,

int64_t data = 0x1234567890123456;
printf("0x%llx\n", data);

如果是64位编译器,那么打印代码如下,

int64_t data = 0x1234567890123456;
printf("0x%lx\n", data);

注意,以上是Linux下的代码,windows下还不一样… …

那么如何写出通用代码呢?网上搜索是使用%I64d来进行打印。但是大部分时候我们可能会忘记这个写法,毕竟很少用。

本人的思路是把64位整数拆成2个32位打印,

int64_t data = 0x1234567890123456;
printf("0x%x, 0x%x\n", (int32_t)(data&0xFFFFFFFF), (int32_t)((data>>32)&0xFFFFFFFF));

可能又会问如何处理大小端呢,只要在打印时加点注释就行了,如下,

int64_t data = 0x1234567890123456;
printf("l32: 0x%x, h32: 0x%x\n", (int32_t)(data&0xFFFFFFFF), (int32_t)((data>>32)&0xFFFFFFFF));
http://www.lryc.cn/news/140474.html

相关文章:

  • c语言每日一练(11)
  • SLAM十四讲学习笔记 第二期:部分课后实践代码
  • Android kotlin 跳转手机热点开关页面和判断热点是否打开
  • Redis 执行 RDB 快照期间,主进程可以正常处理命令吗?
  • Python加入Excel--生产力大提高|微软的全方面办公
  • Excel 分组排名
  • Redis初始以及安装
  • react导出、导入文件
  • (一)Redis——String
  • Spring Boot多环境指定yml或者properties
  • MinDoc:针对IT团队的文档、笔记系统
  • 【分享】华为设备登录安全配置案例
  • Starrocks与MySQL函数的区别
  • 【HTML】学习笔记(自用持续更新)
  • 代码随想录训练营第四十二天|0-1背包理论基础(一)、0-1背包理论基础(二)、416分割等和子集
  • linux 免交互
  • 自然语言处理从入门到应用——LangChain:索引(Indexes)-[文档加载器(Document Loaders)]
  • 7.接着跑一下triton官方教程
  • 波奇学C++:stl的list模拟实现
  • Flask 项目结构
  • 云计算在IT领域的发展和应用
  • 8年测试经验之谈 —— 接口自动化测试requests
  • 求助:vue从后端获取数据,如何对获得的数据进行拆分?
  • html5拖拽文件上传需阻止默认事件
  • 深入剖析Kubernetes之Pod基本概念(一)
  • idea 对JavaScript进行debug调试
  • npm init
  • 微信小程序开发教学系列(6)- 数据缓存与本地存储
  • 跟我学c++中级篇——模板的基础术语说明
  • 最新Win10离线安装.NET Framework 3.5的方法(附离线包2022/3/22)