- 热门文章:
- · 浅谈VB中面向对象技术的封装性
- · 实时曲线的绘制和保存
- · Visual Basic 6 逆向工程与反逆向工程 (1)
- · 在PC上通过手机发送短消息(续篇)
- · Visual Basic 6 逆向工程与反逆向工程 (2)
- · 如何在Visual Basic 6.0 中连接加密的Access数据库
- · 使用Visual Basic操纵XML文档
- · 使用VB6.0设计ActiveX DLL事件
- · VB动态调用外部函数的方法
- · 建立一个程序员自己的全国性营销网络
- · 如何编写高质量的VB代码
- · 为更新到Visual Basic.NET准备你的Visual Basic 6.0应用程序
VB中各种数据类型转换函数
在VB中,提供了很多数据类型转换的函数,特别是各种进制数据的转换以及字符串和数字的转换函数,本文将对这些函数做一个简单的小结.
1. 各种进制转换函数
一般的数据进制包括十进制,二进制,十六进制.十进制就是我们日常生活用到的数据进制,因此也是我们最熟悉和清楚的;二进制是计算机的基础进制,主要是因为便于用物理器件实现二进制;八进制和十六进制因为和二进制的天然的亲密关系,并且表示比二进制更方便,因而也成为计算机的常用表示方法.
VB中涉及到的数据进制之间的转换函数主要有如下几个:
Hex 函数: 返回代表十六进制数值的 String;
Oct 函数: 返回代表一数值的八进制值的Variant (String);
Cint函数: 强制将一个表达式转换成-32,768 至 32,767的整型;
CLng函数: 强制将一个表达式转换成-2,147,483,648 至 2,147,483,647的长整型;
Cdec函数: 强制将一个表达式转换成Decimal 数据类型;
CDbl函数: 强制将一个表达式转换成Double 数据类型;
以上这些函数是最基本的几个数据进制之间的转换函数,其中以前三个函数最常用,也最有用.从上面几个函数我们可以看到,VB中没有为我们提供专门的函数供我们将表达式或是数据转换成十进制和二进制,不过十进制的转换我们可以通过Cint函数轻松完成,而二进制的实现我们可以通过二进制和八进制,十六进制的关系轻松转换.
下面几个例子为Hex函数和Oct函数以及Cint函数的实例:
(1). A= hex(5) 返回5;
(2). B=hex(10) 返回A
(3). C=hex(23) 返回17
(4). D=oct(5) 返回5
(5). E=oct(10) 返回12
(6). F=oct(23) 返回27
(7). G=Cint(&H17) 返回23
(8) . H=Cint(&O12) 返回10
以上这些函数的应用比较简单,就不多说了,值得一提的是Hex函数和Oct函数返回的都是字符串,如果是想将十六进制或是八进制的字符串变量转换成十进制,可以按如下方法进行:
C=”17” 17为十六进制数值的String
C=”&H” & C
Ic=Cint(C) 返回23
2. 字符串和数字转换函数
VB中的字符串函数比较多,也比较方便,就不一一介绍了.本文主要对字符串相关的
转换函数做一些小结.字符串转换的函数主要有:
Str()和Val()用于字符串和数字的相互转换;
Chr()和Asc()用于字符串和AscII码的相互转换;
Chrw()和Ascw()用于Unicode码和中文的相互转换;
Format()函数用途十分广泛的一个函数,功能十分强大.
在这些函数中前两对和Format()函数是我们经常用到的,这里只给出前两对的几个简单例子:
(1) MyString = Str(-459.65) ´ 返回 "-459.65"。
MyString = Str(459.001) ´ 返回 " 459.001"。
(2) MyValue = Val(" 2 45 7") ´ 返回 2457。
MyValue = Val("24 and 57") ´ 返回 24。
(3) MyChar = Chr(97) ´ 返回 a。
MyChar = Chr(37) ´ 返回 %。
(4) MyNumber = Asc("Apple") ´ 返回 65。
MyNumber = Asc("a") ´ 返回 97。
Format函数功能十分强大,大家可以察看msdn相关说明.本文重点想说一下第三对函数,这是经常被大家忽视的一对函数.在我开发手机短信时,最开始时就是用text模式开发的,后来由于发中文改成pdu模式,pdu模式有三种形式可用:7-bits,8-bits,ucs2.前两种都是表复杂的,涉及到编码函数的设计,这里就不多说了,我用的是ucs2编码,发现只要使用第三对函数就能完成pdu串的编码和解码.这对函数的使用和第二对完全相同,下面举几个例子说明(以下代码从vb的立即窗口里得到):
?ascw("中")
20013
?ascw("果")
26524
?ascw("e")
101
?chrw(101)
e
?chrw(26589)
柝
在chrw()和ascw()函数中,对于ASCII仍然和chr()与asc()相同对待.以上只是我对这些函数使用时的一点小结,期望能起到抛砖引玉的作用.
- · 再谈在VB中调用VC++开发的DLL
- · 用VB语言编程实现JPEG数据压缩
- · 用DTS实现SQL数据库的导入
- · vb实现多线程!
- · VB6 自动编译组件
- · 用vb制作ActiveX Dll中,怎么让程序连接远程机器1888端口,并且等待接收信息
- · 以Oracle为例说明如何通过ODBC将数据库中的指定表导出到MDB数据库。
- · VB的API编程精粹(一)
- · VB的API编程精粹(二)
- · 在 VB 中使用 Unicode API
- · 用VB编写COM+应用时碰到问题?
- · Crystal Report(水晶报表)的报表封装成VB的DLL
- · 使用API创建窗体(类似VC的创建过程)
- · 谈谈如何象VB IDE的Immediate一样不使用工程,可以单独执行代码片断
- · (vb)利用GetBitmapBits,SetBitmapBits加速图像处理
- · 基于VB6+ADO+ListView制作的一个数据库分页显示程序(完整原程序)
- · 基于ADO+Adodc控件+DataGrid控件制作的一个数据库编辑程序(完整原程序)
- · 基于Winsock控件制作的一个“服务器,N客户端”通讯程序(完整原程序)
- · 用VB调试串口通讯
- · 如何在VB例程中接收自定义消息
- · vb基础
- · vb基础(打印问题)
- · 用VB写高效的图像处理程序
- · 基于VB算法+Picture+Timer控件制作的39种动画效果,类似屏保(完整原程序)
- · 如何用VB获得Windows各类系统目录
- · 用VB实现DES加解密算法(一)--定义
- · 用vb实现DES加解密算法(二)--加密
- · 用vb实现DES加解密算法(三)--解密
- · VB实现抽象类
- · 应用数据结构(一)线性表节点的插入和删除算法
- · 用 VB 实现表单的自动提交
- · VB6开发领航(一)
- · RFC 1982 SOCKS5 说明
- · 想用就用,VB基础代码
- · 用 VB 打开任意盘(硬盘/U盘/光盘)的文件.
- · AD & ADSI入门
- · 字符串与二进制互相转化(不包含汉字)
- · smtp使用说明
