【发布时间】:2018-11-07 00:18:34
【问题描述】:
C++ 标准在[conv.integral/2] 中说,关于整数转换为无符号:
如果目标类型是无符号的,则结果值是与源整数一致的最小无符号整数(模 2n 其中 n 是用于表示无符号类型的位数)。
我的问题是,为什么会有“least”这个词?有没有可能有多个结果,我们需要从中选择一个?
【问题讨论】:
-
如果
(unsigned int)-1给35184372088831就没有多大意义了,不是吗? (该数字与 -1 mod 2^32 一致) -
@MM:当然。但这对于
unsigned int来说是不可能的值(假设是 32 位ints) -
选择的措辞对我来说似乎比“结果值是与目标类型范围内的源整数一致的无符号整数”更简单
-
@M.M:好的 :) 对我来说,你的措辞要好得多,因为意图更清楚。但也许只有我。
标签: c++