当前位置:编程学习 > VB >>

VB数据类型

VB整形数据点16位?C++中点32位?是这样吗?
VB数据类型都占多少字节?每种占多少个字节,有点迷惑了。 --------------------编程问答-------------------- 整型2字节16位。

长整4字字节32位。

VB、C++整型和长整型是一样的。
------------------------------------------------------
MSDN:
---------------------------
数据类型  存储空间大小 范围 

Byte 1 个字节 0 到 255 
Boolean 2 个字节 True 或 False 
Integer  2 个字节 -32,768 到 32,767 
Long
(长整型) 4 个字节 -2,147,483,648 到 2,147,483,647 
Single 
(单精度浮点型) 4 个字节 负数时从 -3.402823E38 到 -1.401298E-45;正数时从 1.401298E-45 到 3.402823E38 
Double 
(双精度浮点型) 8 个字节 负数时从 -1.79769313486232E308 到 
-4.94065645841247E-324;正数时从4.94065645841247E-324 到 1.79769313486232E308 
Currency 
(变比整型) 8 个字节 从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807 
Decimal 14 个字节 没有小数点时为 +/-79,228,162,514,264,337,593,543,950,335,而小数点右边有 28 位数时为 +/-7.9228162514264337593543950335;最小的非零值为 +/-0.0000000000000000000000000001 
Date 8 个字节 100 年 1 月 1 日 到 9999 年 12 月 31 日 
Object 4 个字节 任何 Object 引用 
String 
(变长) 10 字节加字符串长度 0 到大约 20 亿 
String
(定长) 字符串长度 1 到大约 65,400 
Variant
(数字) 16 个字节 任何数字值,最大可达 Double 的范围 
Variant
(字符) 22 个字节加字符串长度 与变长 String 有相同的范围 
用户自定义
(利用 Type) 所有元素所需数目 每个元素的范围与它本身的数据类型的范围相同。 


注意 任何数据类型的数组都需要 20 个字节的内存空间,加上每一数组维数占 4 个字节,再加上数据本身所占用的空间。数据所占用的内存空间可以用数据元数目乘上每个元素的大小加以计算。例如,以 4 个 2 字节之 Integer 数据元所组成的一维数组中的数据,占 8 个字节。这 8 个字节加上额外的 24 个字节,使得这个数组所需总内存空间为 32 个字节。

包含一数组的 Variant 比单独的一个数组需要多 12 个字节。
--------------------编程问答--------------------
'数据类型               |存储空间大小         |范围
'Byte                   |1 个字节             |0 到 255
'Boolean                |2 个字节             |True 或 False
'Integer                |2 个字节             |-32,768 到 32,767
'Long(长整型)           |4 个字节             |-2,147,483,648 到 2,147,483,647
'Single(单精度浮点型)   |4 个字节             |负数时从 -3.402823E38 到 -1.401298E-45;正数时从 1.401298E-45 到 3.402823E38
'Double(双精度浮点型)   |8 个字节             |负数时从 -1.79769313486232E308 到-4.94065645841247E-324;正数时从4.94065645841247E-324 到 1.79769313486232E308
'Currency(变比整型)     |8 个字节             |从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807
'Decimal                |14 个字节            |没有小数点时为 +/-79,228,162,514,264,337,593,543,950,335,而小数点右边有 28 位数时为 +/-7.9228162514264337593543950335;最小的非零值为 +/-0.0000000000000000000000000001
'Date                   |8 个字节             |100 年 1 月 1 日 到 9999 年 12 月 31 日
'Object                 |4 个字节             |任何 Object 引用
'String(变长)           |10 字节加字符串长度  |0 到大约 20 亿
'String(定长)           |字符串长度           |1 到大约 65,400
'Variant(数字)          |16 个字节            |任何数字值,最大可达 Double 的范围
'Variant(字符)          |22 个字节加字符串长度|与变长 String 有相同的范围
'用户自定义(利用 Type)|所有元素所需数目     |每个元素的范围与它本身的数据类型的范围相同。
'
'注意 任何数据类型的数组都需要 20 个字节的内存空间,加上每一数组维数占 4 个字节,再加上数据本身所占用的空间。
'数据所占用的内存空间可以用数据元数目乘上每个元素的大小加以计算。
'例如,以 4 个 2 字节之 Integer 数据元所组成的一维数组中的数据,占 8 个字节。这 8 个字节加上额外的 24 个字节,使得这个数组所需总内存空间为 32 个字节。
'包含一数组的 Variant 比单独的一个数组需要多 12 个字节。
'
'
--------------------编程问答-------------------- Boolean 布尔值 2字节
Byte 比特值 1字节
Currency 货币值 8字节
Date 日期时间值 8字节
Double 双精度浮点值 8字节
Integer 整形值 2字节
Long 长整形值 4字节
Object 对象 4字节
Single 单精度值 4字节
String 文本字符型
Variant 变量类型 16字节
--------------------编程问答-------------------- 用len()函数就可以看类型所占的大小 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- LEN () --------------------编程问答-------------------- LenB() --------------------编程问答-------------------- 数据类型概述 
数据:计算机能够处理数值、文字、声音、图形、图像等信息,均称为数据。 
数据类型:根据数据描述信息的含义,将数据分为不同的种类,对数据种类的区分规定,称为数据类型。数据类型的不同,则在内存中的存储结构也不同,占用空间也不同 
VB的基本数据类型: 
数值型数据 (主要数据类型) 日期型 字节型 
货币型 逻辑型 字符串型 对象型 变体型 

二、 数值数据类型 
数值类型分为整数型和实数型两大类。 
1、整数型 
整数型是指不带小数点和指数符号的数。 
按表示范围整数型分为:整型、长整型 
(1)整型(Integer,类型符%) 
整型数在内存中占两个字节(16位) 
十进制整型数的取值范围:-32768 ~ +32767 
例如:15,-345,654%都是整数型。而45678%则会发生溢出错误。 
(2)长整型(Long,类型符&) 
长整数型在内存中占4个字节(32位)。 
十进制长整型数的取值范围: 
-2147483648 ~ +2147483647 
例如:123456,45678&都是长整数型。 

2、实数型(浮点数或实型数) 
实数型数据是指带有小数部分的数。 
注意:数12和数12.0对计算机来说是不同的,前者是整数(占2个字节),后者是浮点数(占4个字节) 
实数型数据分为浮点数和定点数。 
浮点数由三部分组成:符号,指数和尾数。 
在VB中浮点数分为两种: 
单精度浮点数( Single ) 
双精度浮点数( Double ) 

(1)单精度数(Single,类型符!) 
在内存中占4个字节(32位),,有效数字:7位十进制数 
取值范围:负数 -3.402823E+38 ~ -1.401298E-45 
正数 1.401298E-45 ~ 3.402823E+38 


在计算机程序里面不能有上标下标的写法,所以乘幂采用的是一种称为科学计数法的表达方法 

这里用E或者e表示10的次方(E/e大小写都可以) 
比如:1.401298E-45表示1.401298的10的负45次方 

vb里面可以这样表示:8.96E-5 
例:21e5(正号省略)表示: 
21乘以10的5次方的一个单精度数 


(2) 双精度数(Double,类型符#) 
Double类型数据在内存中占用8个字节(64位) 
Double型可以精确到15或16位十进制数,即15或16位有效数字。 
取值范围: 
负数: –1.797693134862316D+308 ~ -4.94065D-324 
正数: 4.94065D-324 ~ 1.797693134862316D+308 
比如17.88D5,表示它是一个双精度数,表示17.88乘以10的5次方 
这里用D来表示10的次方 


二、 货币型(Currency,类型符@) 
主要用来表示货币值,在内存中占8个字节(64位); 
整数部分为15位,可以精确到小数点后4位,第五位四舍五入;属于定点实数 
货币型数据的取值范围: 
-922337203685447. 5808 ~ 922337203685447. 5807 
跟浮点数的区别:小数点后的位数是固定的,4位 
例如:3.56@ 、 65.123456@都是货币型。 

三、 字节型(Byte,无类型符) 
一般用于存储二进制数。 
字节型数据在内存中占1个字节(8位)。 
字节型数据的取值范围:0 ~ 255 


四、 日期型(Date) 
在内存中占用8个字节,以浮点数形式存储。 
日期型数据的日期表示范围为: 
100年1月1日~9999年12月31日 
日期型数据的时间表示范围为: 
00:00:00 ~ 23:59:59 
用#括起来放置日期和时间,允许用各种表示日期和时间的格式。 
日期可以用“/”、“,”、“-”分隔开,可以是年、月、日,也可以是月、日、年的顺序。时间必须用“:”分隔,顺序是:时、分、秒。 

例: 
#09/10/2000# 或 #2000-09-12# 
#08:30:00 AM# 
#09/10/2000 08:30:00 AM# 

例: 
Dim mylab As Date 
mylab = #9/3/2001 11:35:00 AM# 
Time = mylab 

在VB中会自动转换成mm/dd/yy(月/日/年)的形式。 

五、 逻辑型(Boolean) 
逻辑型数据在内存中占2个字节。 
逻辑型数据只有两个可能的值: 
True(真) False(假) 
若将逻辑型数据转换成数值型,则: 
True(真)为 –1 False(假)为 0 
当数值型数据转换为Boolean型数据时: 
非0的数据转换为true,0为fasle。 

六、字符串( String ,类型符$) 
字符串是一个字符序列,必须用双引号括起来 
说明: 
双引号为分界符,输入和输出时并不显示。 
字符串中包含字符的个数称为字符串长度。 
长度为零的字符串称为空字符串,比如“”,引号里面没有任何内容 
字符串中包含的字符区分大小写。 
字符串可分为变长字符串和定长字符串两种。 

(1).变长字符串(长度为字符串长度) 
例:dim a as string 
a="123" a="456789“ 
(2).定长字符串(长度为规定长度) 
对于定长字符串,当字符长度低于规定长度,即用空格填满,当字符长度多于规定长度,则截去多余的字符。 
例:dim a as string * 10 


七、对象数据类型(Object ) 
对象型数据在内存中占用4个字节。用以引用应用程序中的对象。 
八、变体数据类型(Variant ) 
变体数据类型是一种特殊数据类型,具有很大的灵活性,可以表示多种数据类型,其最终的类型由赋予它的值来确定。 

九、用户自定义类型 
如果我想同时记录一个学生的学号、姓名、性别、总分,那么我可以用自定义类型。 
用户自定义类型特点:这种类型的数据由若干个不同类型的基本数据组成。 
自定义类型由Type语句来实现: 
格式:Type 自定义类型名 
元素名1 As 类型名 
元素名2 As 类型名 
…… 
元素名n As 类型名 
End Type 
Type是语句定义符,告诉VB现在要定义一个数据类型,是vb的关键字;其后的自定义类型名是要定义的该数据类型的名称,由用户确定;end type表示类型定义结束;自定义类型名是组成该数据类型的变量的名称 
例: 
Type Student 
Num As Long ‘学号 
Name As String*10 ‘姓名,用长度为10的定长字符串来存储 
Sex As String*5 ‘性别,用长度为5的定长字符串来存储 
Score As Single ‘得分,用单精度数来存储 
End Type 
一般在标准模块里面定义,如果只想在窗体里面定义,则前面必须加上Private,表示该类型只对本窗体有效,其他窗体无法定义该类型的变量。 
定义了Student类型之后,我们就可以定义Student类型的变量了,比如: Dim Stu As Student 
--------------------编程问答-------------------- 占多少位,是要看编译器的。
C++并没有规定整形的长度,编译器不一样,长度有可以就不一样。 --------------------编程问答-------------------- --------------------编程问答-------------------- VB里
    Dim a As Integer
    MsgBox Len(a)
我得到的结果是2
=================
C里
printf("%d",sizeof(int));
结果也是2


printf("%d",sizeof(long));
结果则为4``


根据C的教材说明,这是由机器决定的,计算机的话基本上就是这样的规格
但听说有的机器上整型数据是4字节的,可能它要配合它的具体处理目的吧
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,