扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
VB使用Unicode编码,任何字符(包括半角的字母、数字、符号及全角的汉字、符号等)都是占用两个字节的。
创新互联是一家专注于做网站、网站建设与策划设计,介休网站建设哪家好?创新互联做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:介休等地区。介休做网站价格咨询:18982081108
Len()
函数返回字符串的字符个数(要注意,一个汉字也是算作一个字符的)
比如:
Len("百度baidu")的返回值为7
LenB()
函数返回字符串的占用字节数
比如:
LenB("百度baidu")的返回值为14
Replace函数返回 描述返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的。语法Replace(expression, find, replacewith[, start[, count[, compare]]])Replace函数语法有如下几部分:部分 描述 expression 必需的。字符串表达式,包含要替换的子字符串。 find 必需的。要搜索到的子字符串。 replacewith 必需的。用来替换的子字符串。 start 可选的。在表达式中子字符串搜索的开始位置。如果忽略,假定从1开始。 count 可选的。子字符串进行替换的次数。如果忽略,缺省值是 -1,它表明进行所有可能的替换。 compare 可选的。数字值,表示判别子字符串时所用的比较方式。关于其值,请参阅“设置值”部分。 设置值compare参数的设置值如下:常数 值 描述 vbUseCompareOption -1 使用Option Compare语句的设置值来执行比较。 vbBinaryCompare 0 执行二进制比较。 vbTextCompare 1 执行文字比较。 vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。 返回值Replace的返回值如下:如果 Replace返回值 expression长度为零 零长度字符串("")。 expression为Null 一个错误。 find长度为零 expression的复本。 replacewith长度为零 expression的复本,其中删除了所有出现的find 的字符串。 start Len(expression) 长度为零的字符串。 count is 0 expression.的复本。 说明Replace函数的返回值是一个字符串,但是,其中从start所指定的位置开始,到expression字符串的结尾处的一段子字符串已经发生过替换动作。并不是原字符串从头到尾的一个复制。
VB6.0可使用StrConv 函数将字符串转换为字节流(数组)。
StrConv 函数,返回按指定类型转换的 Variant (String)。
实例代码:
Option Explicit Dim strSj As String Dim aryContent() As Byte Dim i As LongPrivate Sub Command1_Click() strSj = Text1 aryContent = StrConv(strSj, vbFromUnicode) For i = 0 To UBound(aryContent) Print Hex(aryContent(i)) NextEnd SubPrivate Sub Form_Load() Text1 = "vb中怎么将字符类型转换为字节类型"End SubvbFromUnicode,将字符串由 Unicode 转成系统的缺省码页。
VB内部采用Unicode编码,在这种编码格式下,任何字符(包括半角的字母、数字、符号以及全角的汉字、符号)都是占用两个字节的。因此,Len("1111徐")的返回值是5,表示5个字符,而LenB("1111徐")的返回值是10,表示占用10个字节。
要想按ANSI编码格式来获取字符串的字节数,必须这样:
LenB(StrConv("1111徐", vbFromUnicode))
要注意哦,虽然返回值是6,但这个数与这个字符串在内存中的实际占用字节数是不相符的哦!
存在两个问题:
1、VB在计算Byte类型数的运算时,也是按Byte类型的位数来存放计算结果的,很显然,计算结果已经超出Byte的范围了;
2、计算结果不但已经超出Byte的范围,也超出Integer的范围了,所以DisNumber变量要定义为Long类型才行。
所以改为如下:
Private
Sub
Form_Load()
Dim
DisNumber
as
Long
'定义为Long型
Dim
a
As
Byte
Dim
b
As
Byte
a=H80
b=H0
DisNumber
=
a
*
256
+
b
'把表达式中的最大数256设为Long型,VB就会按Long型存放计算结果了
TxtDisplay.Text
=
Format(DisNumber,
"##0")
End
Sub
补充:
那就再转换一下:
Private
Sub
Form_Load()
Dim
DisNumber
As
Long
'定义为Long型
Dim
a
As
Byte
Dim
b
As
Byte
a
=
HFF
b
=
H0
DisNumber
=
a
*
256
+
b
'把表达式中的最大数256设为Long型,VB就会按Long型存放计算结果了
DisNumber
=
Val("H"
Hex(DisNumber))
'转换为带符号整数(土法)
TxtDisplay.Text
=
Format(DisNumber,
"##0")
End
Sub
长度分别为16位(2字节)和32位(4字节)最大数值65536,可以将扩展的字节数据类型视为长度为8位的无符号整数。
Integer是类型为int的32位整数,long是64位整数,表示范围:-2^63~2^63-1-long是长整数。
在32位机器中,有符号的基本int的范围是-32768到32767(-2^15--2^15-1)。
他们之间没有多大区别。VB是常用的数据类型。
扩展资料:
长整数在C语言:
Int是C语言的基本整数类型,它可以满足我们处理一般数据的需要。C还提供了四个可以修改int的关键字:short、long、signed和unsigned。
使用这四个关键字,C语言标准定义了以下整数类型:
1.短整型,就像整型一样,是有符号整数。
2.longint(缩写:long),带符号整数。
3.LongLongint(缩写:LongLong),由C99标准增加的类型,带符号整数。
4.无符号整型(简称:无符号),无符号整数,不能表示负数。
5.无符号长整型(缩写:无符号长型)。
你不能代表一个负数。
6.无符号短整型,无符号整数,不能代表一个负数。
7.unsignedlonglongint添加类型,无符号整数。
8.默认情况下,所有无符号整数类型都是有符号整数。在这些整数类型前面签名可以让读者更清楚地看到它们这些是有符号整数,尽管有符号或无符号表示有符号整数。例如:有符号的int等于int。
注意,C只指定了短的= int =long int.这取决于编译器。Long int并不总是64位的,很多时候Long int和int的范围是相同的。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流