|
本帖最后由 香川群子 于 2014-1-2 11:05 编辑
'Byte (0-255)
使用1个byte有8个开关来存储数据,所以全部排列组合=2^8=256种状态,对应0-255个数值。
byte = 一个字节,是二进制的8位存储单元,即有8个状态位置存储。以下同
'&=Integer 2 byte (-2^15 to 32,767) 2^16/2
整型变量有2个字节(1个字元)可以存储16个状态位置,
所以一共是 2^16种类的数值。
由于需要包含正负数和0,所以0和正整数取一半区域,另外一半给负数使用。
于是,上半区存储0和正整数、范围0 以及 1- (2^16/2-1)= 0 to 32767 共32768个数值
而下半区存储负数即0范围 -2^16/2 到 -1 即 -32768 to -1 也是32768个数值
'&=Long 4 byte (-2^31 to 2,147,483,647) 2^32/2 ⇒2.147E9
长整型变量有4个字节(2个字元)可以存储32个状态位置,
所以一共是 2^32种类的数值。
由于需要包含正负数和0,所以0和正整数取一半区域,另外一半给负数使用。
于是,上半区存储0和正整数、范围0 以及 1- (2^32/2-1)= 0 to 2,147,483,647
而下半区存储负数即0范围 -2^32/2 到 -1 即 -2,147,483,648 to -1
'@=Currency 8 byte 2^64/2=9.22E18/10^4
(-922,337,203,685,477.5808 to 922,337,203,685,477.5807)
同理,货币格式有8个字节(4个字元)可存储 2^64种不同的数值。
分上半区0和正数、以及下半区负数,小数点后保留4位。
'!=Single 4 byte(-3.402823E38 to -1.401298E-45 ) (1.401298E-45 to 3.402823E38)
单精度4个字节(2个字元)
'#=Double 8 byte(-1.79769313486231E308 to -4.94065645841247E-324)(4.94065645841247E-324 to 1.79769313486232E308 )
双精度8个字节(4个字元)
注意单精度和双精度都是用浮点小数的方法来存储和表示数值的,因此范围比整数大很多。
|
|