gpt4 book ai didi

C# - 类型大小

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

最近我一直在尝试学习 C#,但我在理解某些东西时遇到了困难。每个整数类型都有一个大小(有符号 8 位、无符号 8 位、有符号 16 位、无符号 16 位等)。我很难理解尺寸到底是多少,以及它们是如何获得该尺寸的。 8位、16位、32位等是什么意思?以及签名和未签名。我不明白这些。如果有人可以向我推荐一个链接,其中包含有关位以及有符号和无符号的解释,甚至可以向我解释一下,那就太好了。谢谢

最佳答案

所有类型都以位的形式存储在您的计算机上。

如果您打开计算器并将其置于程序员模式 (Alt + 3),您可以看到数字(无论如何是整数)如何表示为位。

Calculator in Programmer Mode

从上图中可以看出,255 占据了第 0 位到第 7 位(连续八个 1)。 255 是您可以用 8 位无符号整数表示的最大数字。如果在 8 位类型上将 1 加到 255,则会出现溢出错误,因为 256 不适合 8 位。在低级语言中,如果没有溢出错误,255 + 1 等于 0,因为值翻转

有符号值使用一位来表示符号(正或负)。所以一个带符号的 8 位数字可以从 -128 到 127。

+------+-----+----------------------+----------------------+---------------------+
| | unsigned | signed |
+------+-----+----------------------+----------------------+---------------------+
| bits | min | max | min | max |
+------+-----+----------------------+----------------------+---------------------+
| 8 | 0 | 255 | -128 | 127 |
| 16 | 0 | 65535 | -32768 | 32767 |
| 32 | 0 | 4294967295 | -2147483248 | 2147483647 |
| 64 | 0 | 18446744073709551615 | -9223372036854775808 | 9223372036854775807 |
+------+-----+----------------------+----------------------+---------------------+

像 float 和 double 这样的 float 以不同的方式存储,这不太容易解释:https://en.wikipedia.org/wiki/Floating_point#Internal_representation

基本上,对于整数,更多位意味着更大的数字,对于 float ,更多位意味着更大的数字和/或更高的精度(小数位)。

还值得注意的是,int 是有符号的,而 uint 是无符号的。所有 float 都是有符号的,因为它们的 specification .

有用的链接(来自评论等):

关于C# - 类型大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32265523/

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