【发布时间】:2018-08-14 04:05:49
【问题描述】:
我对两个有符号/无符号整数之间的类型转换感到困惑。为什么有符号整数和无符号整数具有相同的类型等级?
我搜索了“c++ int type rank”并找到并回答了这个问题 What does rank mean in relation to type conversion? 提到:
来自 C++11 标准(草案 n3337)§5/9::
——如果两个操作数的类型相同,则不需要进一步转换。
—否则,如果两个操作数都是有符号整数类型或都具有无符号整数类型,则整数转换等级较小的操作数应转换为等级较大的操作数的类型。
——否则,如果无符号整数类型的操作数的秩大于或等于另一个操作数类型的秩,则将有符号整数类型的操作数转换为无符号整数类型的操作数的类型.
—否则,如果带符号整数类型的操作数的类型可以表示无符号整数类型的操作数类型的所有值,则将无符号整数类型的操作数转换为带符号的操作数类型整数类型。
——否则,两个操作数都应转换为与带符号整数类型的操作数类型对应的无符号整数类型。
但我在 ISO/IEC 14882:2011 中找不到任何关于有符号/无符号整数类型等级的信息。
ISO/IEC Spec 中是否有关于signed/unsigned int 类型转换的官方说明?
【问题讨论】:
-
谢谢,亨利。我在 ISO/IEC 14882:2011 第 88 页第 9 项中找到了它。
标签: c++ c++11 types c++14 rank