c/c++语言开发共享在C中签名vs unsigned int

我是C初学者,需要快速澄清有关整数。

当你将某个东西作为一个32位的int转换时,一半的位被分配给负整数。 因此,如果您知道您将始终具有正整数,则将某些内容作为无符号整数推送应该最大化您的正位,因此当您知道输出将始终为正时更有意义。 这是真的?

谢谢!

    half of the bits are allocated for negative integers这个语句不正确,一位被分配给常规整数的符号。

    但是,你的假设是正确的。 如果你是肯定的,那么数字是正的,使用unsigned int将允许你访问[0,2 ^ 32]范围内的数字,而常规int只允许[ – (2 ^ 31),2 ^ 31-1 ],因为你不需要负值,所以它会给你带来较少的正数。

    不是一半的 ,只有一位转换为一半的 。 也不是强制转换而是声明 :如果你正在重新解释它而没有给你额外的范围,它只会给你一个可能与原始用户意图不同的值。

    仅使用一位来识别该数字是正数还是负数。

    施放到无符号可能也可能没有意义。 有时最好让调试器等显示负数,以便让您知道您的号码已超出范围。

    在比较无符号数时尤其需要小心 – 许多循环未能终止,因为倒计时值是无符号的,并且比较是<0。

    一位用于+/-,而不是一半。 使用无符号数字可以使正值的范围加倍,而带符号则等于。

      以上就是c/c++开发分享在C中签名vs unsigned int相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/560305.html

      (0)
      上一篇 2021年1月27日
      下一篇 2021年1月27日

      精彩推荐