%lld 和%I64d 区别 输出64位16进制 float与double输入与输出的区别

(一)

%I64x和%lld两种都是C语言中格式化输出64位整型的正确做法。

区别在于编译器不同。

gcc(mingw32),g++(mingw32)只支持%I64d的输出方式。
gcc(linux i386),g++(linux i386)只支持%lld的输出方式。

另外,mac上的gcc/g++不支持%I64d的方式

(二)

输出64位数的十六进制可以用 %llx,也可以用%I64x,I64表示64位int值(I32表示32位int值,i必须大写), x表示十六进制形式显示,小写的x表示16进制的字母以小写的形式输出(a,b,c,d,e,f),大写的X表示十六进制的字母以大写的形式输出(A,B,C,D,E,F)

(三)

在printf中%d用于int或者比int小的整数类型。比int小的类型被转型成int。

%ld用于long类型,%lld用于long long类型。

%x标识的数会被当成int进行读取,所以long long类型的数如果超过int的范围会被截断,得不到正确的结果。而且因为它多占了4个字节,还会影响后面的其它标识符的输出。

输入 float用%f,double用%lf,输出都是用%f


原文:https://blog.csdn.net/fz_ywj/article/details/8107582

原文:https://blog.csdn.net/ShellDawn/article/details/74177892

你可能感兴趣的:(小知识,C/C++)