CC++中%d、%ld、%lld的含义和区别是什么?

Python012

CC++中%d、%ld、%lld的含义和区别是什么?,第1张

%d,%ld,%lld 分别对应 printf 的参数类型 int,long 和 long long。而 pow(2, 31) 的类型是 double,所以 D、F、H 会输出不正确的结果。

如果分别加上对应的转换的话(例如 printf("%lld", (long long)pow(2, 31)))的话,用 cout 和用 printf 输出的结果就应该会一致了。

C语言

是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

c语言%lld输出常负数:printf("%lld/n",a)。

d,lx,ld,,lu,这几个都是输出32位的。

hd,hx,hu,这几个都是输出16位数据的。

hhd,hhx,hhu,这几个都是输出8位的。

lld,ll,llu,llx,这几个都是输出64位的。

printf("%llu",.....)

%llu是64位无符号

%llx才是64位16进制数。

%d有符号32位整数。

%u无符号32位整数。

%lld有符号64位整数。

%llx有符号64位16进制整数。

%#llx带0x的64位16进制格式输出。整型数据可以使用%d(有符号10进制)、%o(无符号8进制)或%x/%X(无符号16进制)方式输入输出。

而格式符%u,表示unsigned,即无符号10进制方式。

使用格式字符%lld输出long long类型

一、在C语言中输出语句为printf。其调用方式为:

printf(FORMAT_STR, vars...)

其中FORMAT_STR中指定格式字符,输出时,根据格式字符输出对于类型的变量。

二、每种变量类型,对应一组格式字符。如int对应为%d。 而long long 对应的类型就是%lld。

三、参考代码:

#include <stdio.h>

int main()

{

    long long a=1234567

    printf("%lld\n", a)//以%lld输出long long 类型。

    return 0

}

四、注意事项:

1 long long类型从C99开始支持,所以如果编译器不支持C99规范,则无法使用long long。

2 对于VC/VS编译器,不支持long long类型,而是使用_int64。输出则为相同的%lld。