• printf如何输出64位整数


    From: http://blog.csdn.net/zzqhost/article/details/6064886

    关于printf函数输出64位数的问题,其实在window下和linux下是不一样的:

     linux下是

    printf("%lld/n",a);

    printf("%llu/n",a);

    windows下是

    printf("%I64d/n",a);

    printf("%I64u/n",a);

    完整程序如下:

    1. [zcm@c #51]$cat a.c  
    2. // linux平台C程序  
    3.   
    4. #include <stdio.h>  
    5.   
    6. typedef unsigned long long int64;  
    7. typedef unsigned long long uint64;  
    8.   
    9. int main ( void )  
    10. {  
    11.     int64    c = 0x123456789LL;        // 有符号  
    12.     uint64    uc = 0x123456789ULL;    // 无符号  
    13.   
    14.     printf("%lld, %llu ", c, uc);    // 整数形式输出  
    15.     printf("%llx, %llx ", c, uc);    // 十六进制格式输出  
    16.     printf("%#llx, %#llx ", c, uc);// 带0x的十六进制格式输出  
    17.   
    18.     return 0;  
    19. }  
    20. [zcm@c #53]$make  
    21. gcc -g -O2 -o a a.c  
    22. [zcm@c #54]$./a  
    23. 4886718345, 4886718345  
    24. 123456789, 123456789  
    25. 0x123456789, 0x123456789  
    26. [zcm@c #55]$  
    [zcm@c #51]$cat a.c
    // linux平台C程序
    
    #include <stdio.h>
    
    typedef unsigned long long int64;
    typedef unsigned long long uint64;
    
    int main ( void )
    {
        int64    c = 0x123456789LL;        // 有符号
        uint64    uc = 0x123456789ULL;    // 无符号
    
        printf("%lld, %llu
    ", c, uc);    // 整数形式输出
        printf("%llx, %llx
    ", c, uc);    // 十六进制格式输出
        printf("%#llx, %#llx
    ", c, uc);// 带0x的十六进制格式输出
    
        return 0;
    }
    [zcm@c #53]$make
    gcc -g -O2 -o a a.c
    [zcm@c #54]$./a
    4886718345, 4886718345
    123456789, 123456789
    0x123456789, 0x123456789
    [zcm@c #55]$
    jpg改rar

  • 相关阅读:
    MultipartFile(文件的上传)
    JSONObject.fromObject--JSON与对象的转换
    Map集合与转化
    java读取excel文件
    Java中的Arrays类使用详解
    Arrays 类的 binarySearch() 数组查询方法详解
    JDK8 特性详解
    关于Java堆、栈和常量池的详解
    深入java final关键字
    杯酒人生
  • 原文地址:https://www.cnblogs.com/kuangke/p/7590587.html
Copyright © 2020-2023  润新知