c 语言打印64位整数

你可能发现,上次用的%ld打印的int64_t,今天用就不行了.是有可能的.
因为64位数据类型它不是基础数据类型.一般都是typedef出来的.
所以,具体要怎么打印64位的,还要看他是怎么定义的.

//1 用unsigned long表示64位
uint64_t num = 4503599627370495;//0xfffffffffffff
printf("%lu\n", num); //十进制输出
printf(%#lx\n”, num); //十六进制输出

//2 用unsigned long long表示64位
printf("%llu\n", num); //十进制输出
printf(%#llx\n”, num); //十六进制输出

例子:
main.c

#include <stdio.h>

typedef unsigned long      uint64_t;
typedef unsigned long long UINT64;

int main()
{
    uint64_t a = 0xfffffffffffffff;
    UINT64   b = 0x1fffffffffffffff;
    printf("sizeof : %ld,%ld\n", sizeof(a), sizeof(b));
    printf("a : %lu(%#lx)\n", a, a);
    printf("b : %llu(%#llx)\n", b, b);
    
    return 0;
}

sizeof : 8,8
a : 1152921504606846975(0xfffffffffffffff)
b :2305843009213693951(0x1fffffffffffffff)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值