【发布时间】:2021-05-10 17:48:39
【问题描述】:
在大多数编程语言中,通常是 C、C++ 和 Java,整数数据类型是“int”、“short”和“long”。 “int”数据类型通常是 32 位。 “short”数据类型通常与“int”数据类型一样小,“long”数据类型通常与“int”数据类型一样大。数据类型的第一位是符号位。负数以 1 开头,非负数以 0 开头。因此,32 位数据类型通常存储从 -(2^31) 到 (2^31 - 1) 范围内的数字。但是为什么每个原始数据类型都有固定的大小呢?为什么我们不能拥有无限大小的数据类型,以便我们可以存储无限范围的数字?
【问题讨论】:
-
我们确实有。例如,在 java 中,
BigInteger具有不确定的精度。但我们也有已知大小的数据类型,例如,出于性能原因和/或历史原因。 -
这就像问为什么计算机支持位而不是任意基数。
-
原语是硬件支持的。 Java没那么多,但C应该是直接对应
-
我看不出这是如何基于意见的
-
但是为什么每个原始数据类型都有一个固定的大小? 你将如何开始定义一个具有无限大小的类型而不从固定大小的东西开始呢?你甚至无法定义没有固定的东西“大小”意味着什么。
标签: java c++ c types primitive