VB6-以下操作的作用是:x=b(1)和#x2B;b(2)*&;H100&;?

VB6-以下操作的作用是:x=b(1)和#x2B;b(2)*&;H100&;?,vb6,Vb6,阅读一些旧代码,以执行从数据库流式传输的数据。不太熟悉VB6 这是代码外观的大致概念。只是不完全确定x或y的值是多少?*&H100&做什么?Chr$(b(3))是做什么的 …将两个连续字节转换为16位整数。第二个字节是整数的高位部分。如果这两个字节是(比如)10和20,结果将是(20*256)+10,或者是5130吉姆·麦克已经给出了一个很好的答案 更多支持信息来自: Visual Basic提供了一组标识符类型字符,您可以 在声明中用于指定变量或变量的数据类型 不变的 &长暗M& 还可以将整数

阅读一些旧代码,以执行从数据库流式传输的数据。不太熟悉VB6

这是代码外观的大致概念。只是不完全确定x或y的值是多少?*&H100&做什么?Chr$(b(3))是做什么的


…将两个连续字节转换为16位整数。第二个字节是整数的高位部分。如果这两个字节是(比如)10和20,结果将是(20*256)+10,或者是5130

吉姆·麦克已经给出了一个很好的答案

更多支持信息来自:

Visual Basic提供了一组标识符类型字符,您可以 在声明中用于指定变量或变量的数据类型 不变的

&长暗M&

还可以将整数文字定义为十六进制(以16为基数) 带有&H前缀的编号

因此,
&H100&
是一个十六进制数,它被转换为长整数。末尾的
&
正在强制转换为long,以可能防止溢出错误

发件人:

返回一个字符串,该字符串包含与 指定的字符代码


函数返回一个变量类型,而Chr$()返回一个字符串。

谢谢,这很有意义。那么Chr$(b(3))操作如何?从字节3到字符的转换?吉姆,谢谢,但我也明白了。例如,Chr(56)返回整数56的ASCII表示形式中的字符。谢谢!感谢你清楚的回答!不完全熟悉VB6,但正在使用中。小心!类型字符链接指向的是VB.Net文档,而不是VB6。碰巧,您复制到答案中的信息也适用于VB6,但这并不总是正确的。很好的回答是的……很多专门针对VB6的页面都从MSDN中消失了。@Idle\u Mind-澄清两点:首先,在某些情况下需要使用尾随&in
&H100&
。它强制执行长整数运算,如果没有长整数运算,当另一个被乘数为短整数>256时,可能会出现溢出错误。其次,
Chr()
产生一个类型为
String
Variant
,而
Chr$()
直接产生一个
String
。@Idle\u记住吉姆说的话。你应该编辑你的答案并改正最后一句话。你的措辞是错误的。VB通常有这些字符串函数耦合,例如Mid()和Mid$()。所有的工作方式都是一样的:前者返回一个String类型的变量,后者返回一个实际的String变量。在实践中,结果是相同的,只是字符串变化更快。
Private Sub Sub1()
Dim b() as Byte

' b is then read from a file, a bytes string, or from a database object

x = 0
x = b(1) + b(2) * &H100&

y = ""
y = y & Chr$(b(3))

End Sub
x = b(1) + b(2) * &H100&