我浏览了许多文档,但我仍然没有得到C中数据类型使用的大小,特别是,可能所有编程语言都是如此。
假设我们声明了一个像"int = "这样的变量,我们都知道数据类型"int"的大小为4字节(为了简单起见,暂时忘记arch计算机),它可以保存从-2^31到2^31 - 1的值,即[0到4,294,967,295]。
现在的问题是,每个字符或字母或数字都以8位或一个字节的形式存储,所以如果int只有4个字节作为数据类型的大小,那么如何存储像200,000这样的数字,甚至最大值4,294,967,295。
没有具体的文档解释数据类型的确切大小。
一个4字节的字符串实际上只能存储到9999
的数字,如果您为减号留出空间,则只能存储999
。但这是非常低效的,只在32位数据中存储大约13位的数字。
整数数据类型对于有符号数存储为二进制二进制的补码,对于无符号数存储为二进制。这将使用-2^(n-1)
到2^(n-1)-1
存储有符号数或0
到2^n-1
存储无符号数的所有位,其中n
是数字中的位数。