gpt4 book ai didi

c++ - 关于 C++20 二进制补码提案 R4 的问题

转载 作者:行者123 更新时间:2023-12-02 01:05:33 24 4
gpt4 key购买 nike

我正在阅读 the two's-complement proposal 的第 4 版(被 C++20 采用),我有一些问题。

在简介中,它说:

  • 现状有符号整数算术一般来说仍然是不可交换的(尽管某些实现可能保证它是不可交换的)。

它真的意味着“不可交换”吗,如 a + bb + a 中那样?或者应该读作“非关联”?

它还说:

  • 更改从有符号到无符号的转换始终是明确定义的:结果是与源整数模 2^N 一致的目标类型的唯一值。

从一开始,有符号到无符号的转换不是就以这种方式被明确定义了吗?应该是“从无符号到有符号的转换”吗?

更改列表中还有其他内容遗漏或误述吗?

最佳答案

请注意,被采用的不是 P0907 - 它是 P1236 .

<小时/>

Or should that read "non-associative"?

是的。

Should that read "conversion from unsigned to signed"?

是的。如果你看P1236R1 ,您可以看到规则更改为:

If the destination type is unsigned, the resulting value is the least unsigned integer congruent to the source integer (modulo 2n where n is the number of bits used to represent the unsigned type).

If the destination type is signed, the value is unchanged if it can be represented in the destination type; otherwise, the value is implementation-defined.

至:

Otherwise, the result is the unique value of the destination type that is congruent to the source integer modulo 2N, where N is the range exponent of the destination type.

关于c++ - 关于 C++20 二进制补码提案 R4 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58032212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com