VB使用Unicode编码,任何字符(包括半角的字母、数字、符号及全角的汉字、符号等)都是占用两个字节的。
目前成都创新互联已为1000+的企业提供了网站建设、域名、网站空间、网站运营、企业网站设计、兴安网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
Len()
函数返回字符串的字符个数(要注意,一个汉字也是算作一个字符的)
比如:
Len("百度baidu")的返回值为7
LenB()
函数返回字符串的占用字节数
比如:
LenB("百度baidu")的返回值为14
VB内部采用Unicode编码,在这种编码格式下,任何字符(包括半角的字母、数字、符号以及全角的汉字、符号)都是占用两个字节的。因此,Len("1111徐")的返回值是5,表示5个字符,而LenB("1111徐")的返回值是10,表示占用10个字节。
要想按ANSI编码格式来获取字符串的字节数,必须这样:
LenB(StrConv("1111徐", vbFromUnicode))
要注意哦,虽然返回值是6,但这个数与这个字符串在内存中的实际占用字节数是不相符的哦!
在VB.NET中如果需要将一个字符串转换成字节数组,可以使用System.Text命名空间中某个编码对象的GetBytes方法。
Dim strText As String = "This is an original string"
for一下,将bytes中的字节转为short,for中就可以将要使用的short进行处理了
注意只能对整型执行按位运算。浮点值必须转换为整型后,才能执行按位运算。按位运算采用二进制(以 2 为基)形式计算两个整数值。它们比较对应位置上的位,然后基于比较的结果赋值。下面的示例演示了 And 运算符。复制Dim x As Integerx = 3 And 5 前面的示例将 x 的值设置为 1。发生这种情况的原因如下:这些值以二进制形式处理:二进制格式的 3 为 011二进制格式的 5 为 101And 运算符比较这些二进制表示方式,一次比较一个二进制位置(位)。如果给定位置的两个位都为 1,则将 1 放在结果中的该位置。如果任何一个位是 0,则将 0 放在结果中的该位置。在前面的示例中,按如下所示计算结果:011(二进制格式的 3)101(二进制格式的 5)001(二进制格式的计算结果)计算结果以十进制形式处理。值 001 是 1 的二进制表示形式,因此 x = 1。除了在任何一个比较位是 1 或两个比较位都是 1 的情况下将 1 赋予结果位以外,按位 Or 运算与此类似。Xor 在比较的位正好只有一个是 1(而不是两者都是 1)时将 1 赋给结果位。Not 采用单个操作数并反转所有位(包括符号位),然后将该值赋予结果。这意味着,对于有符号正数,Not 始终返回负值,而对于负数,Not 始终返回正值或零。AndAlso 和OrElse 运算符不支持按位运算。 追问: 好复杂啊...还是不会,还有整数怎么转换为二进制数? 回答: 为什么一定要用位运算呢,你那个乘法只能通过左移操作符“ ”来进行,而左移一次代表乘以2,要是乘以一个小数,就必须先化成2的n次方,不够再用加减法调整,很麻烦啊,没必要用位运算啊。。。 追问: 因为我要进行大量的运算,但速度要快,所有用位运算...我也不想啊.. 回答: 那就不该用VB 啊,c/c++在执行效率上是没话说的。 追问: 问题就是不会嘛... 回答: 那你上csdn上发帖效果应该不错 追问: CSDN发了,我发在高性能运算,没人... 回答: 耐心一些,或者你应该发到VB.NET论坛那里。。。 追问: 额..只能这样了... 提问者 的感言: 太复杂了..算了 2010-11-08
ToCharArray()
例如:str="asdfafafafaf"
str.toCharArray就是一个Char()数组了。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款