c/c++语言开发共享c中int64的十进制到hex

为什么这段代码不起作用?

#include  #include  int main() { printf("%X", 1327644190303473294); } 

我得到了o / p 5f264e8e

但是预期的o / p是126cbd5b5f264e8e ,由下面的PHP脚本给出

  

    可行的方法是

     #include  

    并做:

     #include  #include  // for PRIX64 macro (and INT64_C macro from stdint.h) int main(void) { printf("The value is %"PRIX64"n", INT64_C(1327644190303473294)); return 0; } 

    格式’%X’期望类型’unsigned int’,但参数2的类型为’long int’

     #include  int main(void) { printf("%lX",1327644190303473294); return 0; } 

    输出

     126CBD5B5F264E8E 

    %X用于int ,通常为32位。 64位数字所需的咒语与平台有关。 在Mac上,它是%qX

    您需要使用不同的格式说明符来指示您的整数是64位宽。 就目前而言,您的代码将输入解释为32位整数。

    在MSVC中,这将是%I64x ,在某些平台上它将是%lx并且确实存在其他说明符。

    总之,您需要选择适合您的特定工具集的说明符。

    对于uint64_t,您可以尝试如下:

     uint64_t val = 1327644190303473294; printf("val: 0x%llxn", val); 

      以上就是c/c++开发分享c中int64的十进制到hex相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/541817.html

      (0)
      上一篇 2021年1月4日
      下一篇 2021年1月4日

      精彩推荐