C 语言的整数提升(c语言整数的各位数字)

yumo6668个月前 (05-08)技术文章39

在 C 语言源代码中,无论什么地方,如果表达式中用到了 int 或 unsigned int,那么下面的整数类型的对象或表达式、位字段同样可以放在这些地方的表达式中。

  • 整数类型的对象或表达式(不是 int 或者 unsigned int),其整数转换等级低于或等于 int 和 unsigned int 的等级
  • _Bool、int、signed int 或 unsigned int 类型的位字段

整型的转换等级

如果 int 能够代表原类型的所有值(对于位字段,受限于宽度),值将被转换为 int;否则,值被转换为 unsigned int。这些转换行为被称为“整数提升”(integer promotions),而所有其它类型并不会受到整数提升的影响。

整数提升会保留原来的值,也包括符号位。如前所述,是否 char 被视作有符号数取决于实现。例如,有下面的代码片段:

_Bool b = true;
unsigned char u = 1;
short s = 0;
s += b + u;

当在最后一行的表达式中计算变量 s 的值时,由于 _Bool、unsigned char 和 short 类型的转换等级均低于 int,因此 s、b、u 会进行整数提升。

#头条创作挑战赛##C语言每日小知识#

相关文章

C++基础知识总结(超详细总结)(c++基础与深度解析)

C++基础1 C++特点C++在C语言基础上引入了面对对象的机制,同时也兼容C语言。C++有三大特性(1)封装。(2)继承。(3)多态;C++语言编写出的程序结构清晰、易于扩充,程序可读性好。C++生...

C语言鲜为人知的语言特性及开发者注意事项

在多数开发者掌握的基本语法之外,C语言还藏有一些鲜为人知但又极其实用的语言特性。深入了解这些特性,不仅能让你的代码更优雅、高效,同时也能帮助你在性能和内存管理上实现突破。本文将结合实例,详细讲解这些特...

C 语言的关键字(C语言的关键字)

C 语言中的关键字又称保留字,它们只能用于预定义的目的,而不能用于任何其它目的。C89C89 中包含 32 个关键字:C99C99 中包含 37 个关键字(粗体蓝色部分是新增关键字(+5)):C11/...

每日学习“C·语言”是什么呢?(c的语言是什么)

以下是关于 C 语言的详细信息:一、C 语言的基本特点高效性:C 语言是一种接近硬件的编程语言,它允许程序员直接访问内存地址和操作硬件,因此在性能上具有较高的效率。例如,系统级编程和嵌入式系统开发中,...

C 语言的类型(c语言的类型和编码规则是什么)

C 语言的类型C 语言中存储在对象中的值或者由函数返回的值,其含义取决于用于访问它的表达式。声明为对象的标识符是最简单的这类表达式,类型即由标识符给出。类型分为对象类型(描述对象的类型)和函数类型(描...

C语言数据输出和输入介绍(c语言中数据的输入和输出由什么完成)

在C语言中,数据的输出和输入是程序与用户或外部环境进行交互的重要方式之一。通过数据的输出,程序可以向用户展示信息或结果;通过数据的输入,程序可以获取用户提供的数据或参数。本文将深入介绍C语言中数据输出...