Asc(string)
必要的 string 参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。
说明:
Asc函数就是返回一个字符的ASCII码,每一个汉字、每一个字符或符号,都有特定的ASCII码。在非 DBCS 系统下,返回值范围为 0 – 255 。在 DBCS 系统下(如windows),则为 -32768 – 32767。
举例:
Print Asc("1") '结果为:49Print Asc("A") '结果为:65Print Asc("1A") '结果为:49Print Asc("你") '结果为:-15133Print Asc("你好") '结果为:-15133
2,Chr函数
返回 String,其中包含有与指定的字符代码相关的字符 。
语法:
Chr(charcode)
必要的 charcode 参数是一个用来识别某字符的 Long。
说明:
0 到 31 之间的数字与标准的非打印 ASCII 代码相同。例如,Chr(10) 可以返回换行字符。charcode 的正常范围为 0 – 255。
举例:Print Chr(65) '结果为"A"Print Chr(49) '结果为"1"Print Chr(-15133) '结果为"你"
扩展:
chr(10)表示换行符,chr(13)表示回车符
3,Val函数
将字符串类型转换为数值类型,返回包含于字符串内的数字,字符串中是一个适当类型的数值,如果字符串第一个字符不是数字,那么将返回0。
语法:
Val(string)
必要的 string 参数可以是任何有效的字符串表达式.
说明:
Val 函数,在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 &O
(八进制)和 &H
(十六进制)。空白、制表符和换行符都从参数中被去掉。
下面的返回值为 1615198:
Val(" 1615 198thSt")
举例:
Dim str$ str = "123" Print Val(str) '结果是:123(数值类型) str = "a123" Print Val(str) '结果是:0(数值类型) str = "10a123" Print Val(str) '结果是:10(数值类型)
4,Str函数
将数值类型转换为字符串类型,返回代表一数值的 Variant (String)。
语法:
Str(number)
必要的 number 参数为一 Long,其中可包含任何有效的数值表达式。
说明:
当一数字转成字符串时,总会在前头保留一空位来表示正负。如果 number 为正,返回的字符串包含一前导空格暗示有一正号。
5,Hex函数
将一个数值转换为十六进制的数值字符串,返回代表十六进制数值的 String。
语法:
Hex(number)
必要的 number 参数为任何有效的数值表达式或字符串表达式。
说明:
如果 number 还不是一个整数,那么在执行前会先被四舍五入成最接近的整数。
如果 number 为 | 所得为 |
Null | Null |
Empty | 零 (0) |
任何其他的数字 | 最多可到八个十六进制字符。 |
&H
,可以直接表示十六进制数字。例如,十六进制表示法的
&H10
代表十进制的 16。
举例:
Print Hex(10) '结果为"A"Print Hex(11000) '结果为"2AF8"
二、随机函数
1,Rnd函数
产生一个在 [0,1) 之间的随机数,其结果是一个 Single单精度类型的数值。
语法:
Rnd[(number)]
可选的 number 参数是 Single 或任何有效的数值表达式。
返回值:
如果 number 的值是 | Rnd 生成 |
小于 0 | 每次都使用 number 作为随机数种子得到的相同结果。 |
大于 0 | 序列中的下一个随机数。 |
等于 0 | 最近生成的数。 |
省略 | 序列中的下一个随机数。 |
Int((up - low + 1) * Rnd + low)
2,Randomize函数
初始化随机数生成器,以便使用rnd产生随机数时不会重复。
语法:
Randomize [number]
可选的 number 参数是 Variant 或任何有效的数值表达式。
说明:
Randomize 用 number 将 Rnd 函数的随机数生成器初始化,该随机数生成器给 number 一个新的种子值。如果省略 number,则用系统计时器返回的值作为新的种子值。
如果没有使用 Randomize,则(无参数的)Rnd 函数使用第一次调用 Rnd 函数的种子值。
注意:
若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。
随机函数举例:
目标
:
设计一个程序,随机产生5个在1-10范围内的整数。第一个按钮事件中不使用Randomize函数,第二个按钮事件中使用Randomize函数。然后运行程序2次,观察结果有何区别。
第一步:
按照下图设计程序界面:
第二步:按照下图编写代码:
注意:产生1-10之间的整数,按照上面的公式,可以写出来其表达式为:
Int((10-1)*Rnd+1),即:Int(10*Rnd+1)
第三步:运行程序,点击三次按钮1,再点击三次按钮2,然后将结果拍照或截图保存,以便与下一次运行结果对比。比如,我这里运行结果如下:
第四步:关闭程序后,再运行程序,同样点击三次按钮1,再点击三次按钮2,我这里的结果如下图所示,与第一次的结果做一个对比,观察两者有何区别?
发现了吗,虽然单次运行时,似乎两者并没有区别,都可以正确的产生随机数。但是当关闭程序后,再次运行程序时,可以发现:不使用Rnadomzie函数时,其随机结果与第一次运行时产生的结果一一对应。而使用了Rnadomzie函数,才是实现了正真的随机。
其原因就是在于:第一种方法没有变换随机种子,所以导致随机的结果顺序一致。而第二中方法变换了随机种子,所以实现了真正的随机。
好了,本节关于VB转换函数和随机函数的学习课程就到这里啦。我们下节课程再见。