gpt4 book ai didi

C - 转换为 2s 补码

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:26 28 4
gpt4 key购买 nike

我决定这样做

  • 翻转数字 0=1, 1=0
  • LSB加1
  • 如果进位,循环直到array[i]==0

但我坚持最后一点;我怎么能在条件循环中这样说呢?

最佳答案

你在谈论扩展算术。大多数处理器都有来自每个加法运算的进位和溢出结果,但 C 不提供对它们的访问。

你的问题是数字越大越长。如果你已经到了最后一点,你需要执行,你还需要一点!这意味着您需要重新分配位数组(如果您使用的是数组)。

当然,更实用的解决方案是使用 native 整数而不是单个位,因为您的处理器已经很好地处理了二进制补码。然后,您知道如果原始数字等于 (unsigned) -1,则加一会导致进位。根本问题仍然存在;如果你需要执行最后一个 unsigned 你需要分配另一个。

关于C - 转换为 2s 补码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2581410/

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