最近我一直在努力学习C#,但是我很难理解某些东西。每个整型有一个大小(有符号8位,无符号8位,有符号16位,无符号16位等)。我很难理解尺寸究竟是什么,他们是如何获得这种尺寸的。 8bit,16bit,32bit等是什么意思?并签署和未签名。我不明白这些。如果任何人都可以引用我的链接解释位和签名和未签名,甚至解释给我,这将是伟大的。谢谢C# - 类型大小
1
A
回答
5
所有类型存储在您的计算机上的位。
如果打开Calculator并将其置于Programmer Mode(Alt + 3),您可以看到数字(整数,无论如何)都表示为位。
正如可以从上面的图像看到,255占用第0位至第7位(八个1的中的行)。 255是您可以在8位UN符号整数中表示的最高数字。如果在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 |
+------+-----+----------------------+----------------------+---------------------+
浮点数像花车和双存储在不同的方式,这是不是很容易解释:https://en.wikipedia.org/wiki/Floating_point#Internal_representation
基本上,整数越多意味着数字越大,浮点越多意味着数量越大,精度越高(小数位数)。
还值得注意的是,int
已签名,而uint
未签名。由于它们的specification,所有浮点数是签署的。
有用的链接(从评论等):
- 维基百科位:https://en.wikipedia.org/wiki/Bit
- 维基百科整数:https://en.wikipedia.org/wiki/Integer_(computer_science)
- C#整数数据类型:https://msdn.microsoft.com/en-us/library/exx3b86w.aspx
- C#浮点数据类型:https://msdn.microsoft.com/en-us/library/9ahet949.aspx
- 编程魔幻编号:https://msdn.microsoft.com/en-us/library/ee621251.aspx
- 浮点标准:http://steve.hollasch.net/cgindex/coding/ieeefloat.html
2
大小决定在该类型的存储中使用多少位。
EG 8位INT:00000001 == 1
如果类型是有符号的,则该类型的第一个比特确定它是否是正或负的值
例如11111111 == -1(使用。一种叫补中的链接更多细节)
签署类型的简要介绍可以在这里找到: http://kias.dyndns.org/comath/13.html
相关问题
- 1. stdint.h中的C++标准类型大小
- 2. 类的大小 - C++
- 3. LLVM中的类型大小
- 4. 大小类型字符串
- 5. 原子类型的大小
- 6. C数据类型的最小保证大小/范围
- 7. 可变大小的类 - C++
- 8. C#小数类型平等
- 9. 小学C++类型混淆
- 10. OSX和iOS数据类型的大小
- 11. C++类空类的大小1字节
- 12. OpenCV Mat元素类型及其大小
- 13. 类型的保证大小为2?
- 14. Linux上的C++数据类型大小/范围显示
- 15. 具有可变大小和可变类型的C++容器
- 16. asp.net mvc c#检查文件类型和文件大小
- 17. 从c得到原生类型的大小#
- 18. 在函数内分配变量类型和大小数组(C++)
- 19. C++大小感知的数据类型/参数
- 20. 如何查找PICmicro C编译器的数据类型大小?
- 21. c#获取列的数据类型和大小
- 22. C++中任意类型T的最小值/最大值11
- 23. 大小的数组如在C++函数的参数类型
- 24. C++如何获得结构类型向量的大小
- 25. 如何预测C中特定数据类型的大小?
- 26. C#中积分类型的最小值和最大值#
- 27. C++中枚举类型数据的大小是多少?
- 28. 如何从objective-c类型编码中获取字节大小
- 29. C++字符类型的长度和大小
- 30. 如何在C中定义1位大小的数据类型?
https://en.wikipedia.org/wiki/Bit和https://en.wikipedia.org/wiki/Integer_(computer_science)将是一个好的开始。 –
https://msdn.microsoft.com/en-us/library/exx3b86w.aspx – Martheen
无符号数字只能是正数,有符号可以是正数/负数。 8位数字表示它自己的数字可以表示2^8个不同的值。 带符号的8位整数可以保持-128到+127之间的值,无符号8位整数可以保持从0到255的值。 –