gpt4 book ai didi

c++ - 数字类型之间的 C++ 转换到底是如何工作的?

转载 作者:行者123 更新时间:2023-11-30 02:47:35 25 4
gpt4 key购买 nike

<分区>

在我的代码中,我执行如下操作:

double a = 3.0;
uint64_t b = static_cast<uint64_t>(a);
double c = static_cast<double>(b);

有趣的是,只要 a 为正数,这就如我预期的那样工作 (a == c),但如果 a 为负数,c 最终会成为任意大的正数。 (它一定是包裹在某处或某处。)

我的问题是:

  1. 为什么会这样?
  2. 为什么这段代码没有违反严格的别名规则?

注意:double 和 uint64_t 在我的系统上大小相同。

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