到时候了,是时候给你们讲一下其他的定义形式与格式化输入输出了。
1.长整型变量
长整型变量分为两种:
①long类型
在计算机编程中,long
类型是一个整型数据类型,用于存储较大的整数。它的大小和范围取决于操作系统和编译器的实现,但通常至少是32位的,可以存储的数值范围通常从 -2,147,483,648 到 2,147,483,647(对于有符号的 long
类型)。在某些系统中,long
可能是64位的,尤其是在64位的操作系统中。在 C 和 C++ 中,long
至少是32位的,但具体大小由实现决定。使用 long
类型时,通常在变量类型后面加上 L
或 l
来表示这是一个长整型字面量,例如 123L
或 123l
。这有助于区分 long
类型和 int
类型的字面量。在定义变量时,也可以在变量名后面加上 L
或 l
,例如 long number = 123L;
②long long类型
long long
类型是 C 和 C++ 语言中的一种数据类型,用于存储更大的整数值。它是在 C99 标准中引入的,以满足对更大范围整数的需求。long long
类型至少是64位的,通常用于存储非常大的整数。
在 C 和 C++ 中,long long
类型的数值范围通常是:
- 对于有符号的
long long
类型(long long
),范围是从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。 - 对于无符号的
long long
类型(unsigned long long
),范围是从 0 到 18,446,744,073,709,551,615。
在定义 long long
类型的变量时,可以在变量类型后面加上 LL
或 ll
来表示这是一个长长整型字面量,例如 123LL
或 123ll
。这有助于区分 long long
类型和 int
或 long
类型的字面量。在定义变量时,也可以在变量名后面加上 LL
或 ll
,例如:
long long number=123LL;//为了让大家看清楚,就用大写了
long long
类型在不同的编译器和平台上可能会有所不同,但至少会满足上述的数值范围要求。在编写跨平台代码时,了解目标平台的 long long
类型的具体实现是很重要的。
2.小数点定义
①float类型
在计算机编程中,float
类型是一种用于存储浮点数的数据类型,它能够表示小数点前后的数值。浮点数是一种近似表示实数的方式,因为计算机使用二进制来存储数据,所以不能精确表示所有的实数。
在大多数编程语言中,float
类型通常遵循 IEEE 754 标准,这是一个广泛使用的浮点数算术标准。根据这个标准,一个 float
类型的数值通常由以下几个部分组成:
符号位(Sign bit):1位,表示数值的正负,0表示正数,1表示负数。
指数位(Exponent bits):8位,用来表示数值的范围。
尾数位(Mantissa bits):23位,用来表示数值的精度。
float
类型的数值范围和精度如下:
- 范围:大约从 1.2E-38 到 3.4E38。
- 精度:大约7位十进制数字。
例如,在 C、C++ 和 Java 中,float
类型都是32位的,遵循上述的 IEEE 754 标准。在 Python 中,虽然没有明确指定 float
类型,但通常使用的是双精度浮点数(double
),它有更高的精度和更广的范围。
在定义 float
类型的变量时,可以在数值后面加上 f
或 F
来明确表示这是一个浮点数,例如 3.14f
或 2.5F
。这在某些语言中是可选的,但在其他语言中可能是必需的,以区分整数和浮点数。
需要注意的是,由于浮点数的表示方式,它们在进行算术运算时可能会有精度损失,因此在需要精确计算的场合(如金融计算)应谨慎使用
②double类型
在计算机编程中,double
类型是一种用于存储浮点数的数据类型,它能够提供比 float
类型更高的精度。double
类型通常用于需要更精确的科学计算和工程计算,因为它可以表示更广泛的数值范围和更高的数值精度。
double
类型遵循 IEEE 754 标准,这是一个广泛使用的浮点数算术标准。根据这个标准,一个 double
类型的数值通常由以下几个部分组成:
符号位(Sign bit):1位,表示数值的正负,0表示正数,1表示负数。
指数位(Exponent bits):11位,用来表示数值的范围。
尾数位(Mantissa bits):52位,用来表示数值的精度。
double
类型的数值范围和精度如下:
- 范围:大约从 2.2E-308 到 1.8E308。
- 精度:大约15到17位十进制数字。
在大多数编程语言中,double
类型是64位的,包括 C、C++、Java 和 Python。在这些语言中,double
类型通常用于需要高精度的浮点数计算。
在定义 double
类型的变量时,可以在数值后面加上 d
或 D
来明确表示这是一个双精度浮点数,例如 3.14d
或 2.5D
。这在某些语言中是可选的,但在其他语言中可能是必需的,以区分单精度浮点数(float
)和双精度浮点数(double
)。
需要注意的是,尽管 double
类型提供了更高的精度,但在进行算术运算时仍然可能会有精度损失。
3.格式化输入,输出
scanf(输入)
和 printf(输出)
是 C ++语言标准库中用于输入和输出的函数。这两个函数提供了一种灵活的方式来处理格式化的输入和输出。以下是 scanf
和 printf
的一些好处:
-
格式化能力:
printf
允许你指定输出格式,包括数字的宽度、精度、填充、对齐、符号和基数(如十进制、十六进制等)。scanf
则允许你指定输入的格式,确保用户输入的数据符合预期的类型和格式。 -
灵活性:你可以使用
printf
和scanf
来格式化几乎任何类型的数据,从简单的字符和字符串到复杂的结构体。 -
可读性:使用
printf
可以生成易于阅读的输出,这对于调试和用户界面的友好性非常重要。 -
效率:
scanf
和printf
是底层的 C 语言函数,通常比高级语言中的类似功能更接近硬件,因此它们在执行时非常高效。 -
跨平台:这些函数在几乎所有的 C 语言编译器和平台上都是可用的,这使得代码具有很好的可移植性。
-
错误处理:
scanf
返回成功读取的项目数,这可以用来检查输入是否有效,以及是否发生了错误或意外的输入结束。 -
用户输入控制:
scanf
允许你控制用户输入的解析,例如,你可以指定跳过空白字符,或者要求输入必须符合特定的格式。 -
输出控制:
printf
允许你控制输出的显示,例如,你可以设置字段宽度和填充字符,以确保输出的对齐和格式。 -
国际化支持:虽然
scanf
和printf
本身不直接支持国际化,但它们可以与 locale 设置结合使用,以支持不同语言环境中的数字和货币格式。 -
兼容性:由于
scanf
和printf
是 C 语言标准的一部分,它们在几乎所有的 C 语言环境中都是可用的,这使得它们非常适合用于需要广泛兼容性的应用程序。 -
简单性:对于简单的输入输出任务,
scanf
和printf
提供了一种快速且简单的方法,无需编写复杂的代码。
尽管 scanf
和 printf
提供了许多好处,但它们也有一些缺点,比如安全性问题(如缓冲区溢出),因此在使用时需要谨慎,尤其是在处理不可信的输入时。现代编程实践中,有时会推荐使用更安全的替代函数,如 scanf
的 fgets
和 sscanf
,以及 printf
的 snprintf
。
格式控制字符:
内容解析:
代码:
int n;
scanf("%d",&n);//一定要有取地址符&,%d表示int类型输入,详见上表
printf("%d",n);//输出
青水太快刹不住,点个关注不迷路!