标签: c++ integer language-lawyer twos-complement c++20
我正在阅读the two's-complement proposal的修订版4(C ++ 20通过),并且有一些疑问。
在引言中说:
像ford2与Car一样,这真的意味着“不可交换”吗?还是应该读成“非关联”?
ford2
Car
它也说:
自时间开始以来,难道没有以这种方式很好地定义有符号到无符号的转换吗?是否应该显示“从无符号转换为有符号”?
更改列表中是否还有其他遗漏或错误陈述的内容?
答案 0 :(得分:1)
请注意,采用的不是P0907,而是P1236。
还是应该读成“非关联”?
是的
应该读“从无符号转换为有符号”吗?
是的。如果您查看P1236R1,则可以看到规则已更改为:
如果目标类型是无符号的,则结果值是与源整数一致的最小无符号整数(模2 n ,其中n是用于表示无符号类型的位数)。 / p> 如果目标类型是带符号的,则该值可以用目标类型表示,则保持不变;否则,该值是实现定义的。
如果目标类型是无符号的,则结果值是与源整数一致的最小无符号整数(模2 n ,其中n是用于表示无符号类型的位数)。 / p>
如果目标类型是带符号的,则该值可以用目标类型表示,则保持不变;否则,该值是实现定义的。
收件人:
否则,结果是目标类型的唯一值与源整数模2 N 一致,其中N是目标类型的范围指数。