目前大多数计算机是32位的,这说明最多能处理长度为 32位的整型值。
32位的整型取值范围为 -2147483648 至 2147483648。
如果定义一个变量为整型,Dim intNo as Integer,就表示要存储一个整型值。为此,计算机分配了一个 32 位的内存块。
内存为 256MB 的计算机最多能存储 67108864 个整型数。听起来很多,但是内存是共享的,其他程序也需要内存。因此你在编写软件时要节约使用内存。
如果定义一个整数,无论存储的是 125,还是229658,都要使用 32 位内存。整数的大小和存储它的空间无关。这似乎造成了浪费,但是计算机对于相同类型的数值采用相同的存储空间。如果不这样,它就无法工作。
一个单精度浮点数只需32位内存,与整型值相同。
一个双精度浮点数占用的内存则是单精度浮点数的一倍,需要64位内存。
与整型和浮点数不同,字符串没有固定的长度。字符串的每一个字符都占据2个字节 (byte),即16位。比如要表示下面一个13 个字符的变量,就需要26 个字节。
Dim strHello as String = "Hello, world!"
因此计算机智能存储二百多万个这样的字符串。很明显,如果字符串长度再加一倍,所能存储的字符串个数就要减半。
编程新手的通病在于不考虑数据类型对内存的影响。假定定义一个存储字符串的变量,并将一个数字存储其中,比如:
Dim content as String = "65536"
这个变量要消耗10个字节 (相当于80 位,一个字节8位) 的内存。要在字符串中存储这个数值,字符串中的每个字符都必须转换成数字来表示。这是根据 Unicode 码进行的。 Unicode码是用来定义计算机存储字符的标准方式。每个字符都唯一对应 0-65535 之间的某个值。
下面是字符串中每个字符所对应的Unicode码:
6 - Unicode码:54,二进制表示:0000000000110110
5 - Unicode码:53,二进制表示:0000000000110101
5 - Unicode码:53,二进制表示:0000000000110101
3 - Unicode码:51,二进制表示:0000000000110011
6 - Unicode码:54,二进制表示:0000000000110110
每个字符都要16位,所以在字符串变量中存储一个5位的数字,则需要80位。不如使用整型存储有效,因为一个整型只占用32位,应该写成:
Dim content as Integer = 65536
上一页: 位(bit)和字节(byte) 返回上级目录: 存储变量 下一页: 值的转换
© 2008 woyouxian.net 版权所有 Contact Us