gpt4 book ai didi

c - 什么时候写 "0 - x"而不是 "-x"有用?

转载 作者:行者123 更新时间:2023-12-04 12:04:38 25 4
gpt4 key购买 nike

我偶尔注意到一些 C 代码坚持使用 0 - x得到 x 的加补, 而不是写 -x .现在,我想这些对于尺寸小于 int 的类型并不等效。 ( 编辑 :不,即使那时显然也等效),但除此之外 - 前者而不是后者有什么好处吗?

最佳答案

tl;博士:0-x对于清除浮点零的符号很有用。
(正如@Deduplicator 在评论中指出的:)
我们中的许多人往往会忘记,在浮点类型中,我们有一个“正零”和一个“负零”值——打开和关闭符号位会留下相同的尾数和指数。阅读更多相关信息 here .
好吧,事实证明,这两个表达式在正符号零上的行为不同,在负符号零上的行为相同,如下所示:

x 的值0-x 的值-x 的值

-.00000-.0

See this on Coliru .
所以,当 x是浮点类型,

  • 如果您想“忘记零的符号”,请使用 0-x .
  • 如果你想“保持零的符号”,使用 x .

  • 对于整数类型,它应该无关紧要。

    另一方面,正如@NateEldredge 指出的,由于整数提升,表达式在小整数类型上应该是等效的 - -x转化为 x 的促销成 int ,然后应用减号。

    关于c - 什么时候写 "0 - x"而不是 "-x"有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68614388/

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