数字系统从负无穷大扩展到正无穷大,中间为零。但是,在编程中,基本上有两种类型的数字;已签名和未签名。有符号数字和无符号数字之间的主要区别在于使用负数的能力。无符号数字只能具有零或更大的值。相比之下,有符号数字更自然,其范围包括负数到正数。

创建有符号和无符号数字是由于需要用非常有限的资源表示数值。例如,使用 8 位时,总共只有 256 个组合。对于无符号数字,表示 0 到 255 之间的任何值。相比之下,拥有有符号的数字意味着已经失去了代表符号的一点。对于 7 位,最多有 128 种组合,因此 8 位有符号数字的范围是从 -128 到 127。因此,如果资源有限,比如在计算的早期,使用无符号数字是要走的路。

在编程中使用有符号和无符号数字时,只使用其中一个更安全,因为同时使用两者可能会导致问题。第一种是将无符号数字与有符号数字进行比较时。这通常会导致警告,但编译器仍然可以编译它。第二个也是更严重的问题是将无符号号码的内容分配给有符号号码时。如果未签名数字的值大于有符号数字的最大值,则会导致错误。

随着技术的发展,资源变得更加丰富,使用无符号数字的必要性越来越少。为了说明这一点,请记住,一个 32 位长的数字的最大有符号值可以是 200 万,如果是无符号,则为 400 万。当移动到 64 位时,差异在 90 和 180 万亿之间;在公共程序中很少使用的值。

有符号和无符号的区别

  1. 无符号数仅包括零和正数,而有符号数包括负数。
  2. 有符号数字的最大值是无符号数字的一半。
  3. 混合有符号和无符号数字可能会导致问题。
  4. 使用有符号或无符号数字在现代应用中几乎没有影响。

有符号和无符号的区别

本文由网友:依尔觉罗忆寒 投稿 欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:有符号和无符号的区别
本文链接:https://www.vsdiffer.com/vs/signed-vs-unsigned.html
免责声明:以上内容仅代表 网友:依尔觉罗忆寒 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。