- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
“通常的算术转换”和“整数提升”是一回事吗?我读过“通常的算术转换”用于使表达式的操作数具有相同类型,而“整数提升”用于将小于 int
的类型提升为 int
,但在 MSDN这两个概念都只放在“通常的算术转换”下。
最佳答案
没有。
通常的算术转换在某些情况下涉及整数提升,但这是两种独立的机制:
[C++14: 5/10]:
Many binary operators that expect operands of arithmetic or enumeration type cause conversions and yield result types in a similar way. The purpose is to yield a common type, which is also the type of the result. This pattern is called the usual arithmetic conversions, which are defined as follows:
- If either operand is of scoped enumeration type (7.2), no conversions are performed; if the other operand does not have the same type, the expression is ill-formed.
- If either operand is of type
long double
, the other shall be converted tolong double
.- Otherwise, if either operand is
double
, the other shall be converted todouble
.- Otherwise, if either operand is
float
, the other shall be converted tofloat
.- Otherwise, the integral promotions (4.5) shall be performed on both operands.61 Then the following rules shall be applied to the promoted operands:
- If both operands have the same type, no further conversion is needed.
- Otherwise, if both operands have signed integer types or both have unsigned integer types, the operand with the type of lesser integer conversion rank shall be converted to the type of the operand with greater rank.
- Otherwise, if the operand that has unsigned integer type has rank greater than or equal to the rank of the type of the other operand, the operand with signed integer type shall be converted to the type of the operand with unsigned integer type.
- Otherwise, if the type of the operand with signed integer type can represent all of the values of the type of the operand with unsigned integer type, the operand with unsigned integer type shall be converted to the type of the operand with signed integer type.
- Otherwise, both operands shall be converted to the unsigned integer type corresponding to the type of the operand with signed integer type.
C11 中的措辞大致相同。
请注意,整数提升也可以在与通常的算术转换无关的情况下执行,例如移位的 LHS 操作数;最终,这就是为什么这两种机制有自己不同的名称!
关于c++ - "usual arithmetic conversions"和 "integer promotions"是一回事吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28142902/
您走进一家商店,选择了几种产品,然后去柜台结账。总数是一定数量 (A)。您 Handlebars 伸进钱包、钱包或口袋里,放入一些现金 (P),其中 P >= A,收银员给你改变了。 给定一组流通中的
这个问题已经有答案了: var functionName = function() {} vs function functionName() {} (41 个回答) 已关闭 9 年前。 有什么区别吗
你能帮我理解为什么在Python中使用filter()而不是def-function吗?只是它更具可读性。 谢谢。 例如, 这一个默认函数: def do_even_check(num): f
在秒。 3.4.1/3 说了以下内容: For purposes of determining (during parsing) whether an expression is a postfix-
我正在读一本书(我是 JavaScript 的新手),我只是好奇是否可以使用对象文字符号声明来创建对象,但又能够使用“通常”的 JavaScript 语法并在声明中执行代码这个对象,让我更详细地解释一
我正在努力从 TrueType (.ttf) 字体文件中手动解析字形。根据文件的大小,这些字形可能有数百到数千种不同的字形。这些字形可以分为离散范围,例如拉丁文、希腊文、西里尔文等。 我只是想知道,传
我的目标是输入一组短语,如下所示 array = ["Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
我想要字体 open_sansregular 来自 this网站所以我下载了不同编码字体的本地副本(svg 和 iefix 除外),将它们放在与我的 CSS 文件相同的文件夹中,并复制了组织的 @fo
在C++ tag wiki , 据称 C++ is a ... (usually) compiled ... programming language ... 还Wikipedia和 cplusplu
我最近正在使用 React Hooks 重构一个 Web 应用程序。我遇到了一个关于 useCallback 的问题.基于肯特的描述:https://kentcdodds.com/blog/useme
在我的应用程序中,我有两种类型的推送通知:带有 content-available = 1 标志的远程静默通知和带有 body、badge< 的普通推送通知 和其他东西。 我还定义了两个委托(dele
我正在编写一个仅用于与Android Studio进行测试的应用程序。我想使用字符串((strings [0]))请求带有POST参数的服务器。 但是我总是得到这个异常: javax.net.ssl.
我想为我的 Spring-Boot 应用程序运行一些测试,但我一直在单例中遇到 NullPointerException。我有以下设置: @Service public class ProjectSe
我需要为 iPad 创建登录屏幕并且我需要我的登录输入是固定宽度的。是否可以修复 DialogViewController 元素的长度或使用 UIView 元素创建布局并在其中嵌套 DialogVie
我正在使用 arm-none-eabi-gcc/g++ 工具链为 ARM Cortex_M7 x 编译裸机 C++,它工作正常,在我的板上闪烁了不错的固件。 现在,当/如果我想包含到“好旧的”C++
我正在尝试创建一个示例来显示 volatile 变量和普通变量之间的区别,例如: package main; public class TestVolatile extends Thread {
“通常的算术转换”和“整数提升”是一回事吗?我读过“通常的算术转换”用于使表达式的操作数具有相同类型,而“整数提升”用于将小于 int 的类型提升为 int,但在 MSDN这两个概念都只放在“通常的算
我正在尝试这个: SqlConnection connection = new SqlConnection(connectionString); try
React,setState(...):在未安装组件上调用setState()??? setState(...):这通常意味着您在未安装的组件上调用了 set state()。 Warning: se
最近遇到Python函数的问题ctypes.util.find_library .该函数用于按名称定位共享库;例如,CuPy用它来定位 cuDNN。就我而言,我安装了多个版本的 cuDNN,它选择了最
我是一名优秀的程序员,十分优秀!