VB6中 Long型数据如何能强制转换为Integer型
请教高手!VB6中一个long型变量中存了一个数值65534,其实这个数值是1个16位有符号数-32766强制类型转变成无符号数的数值,现想将该数值保存在Integer变...
请教高手!VB6中一个long型变量中存了一个数值65534,其实这个数值是1个16位有符号数-32766强制类型转变成无符号数的数值,现想将该数值保存在Integer变量中,使其还原成一个16位有符号数,直接类型转换提示溢出,请问该怎么处理啊?我的目的就是在VB中将16位无符号数65534还原为16位有符号数
不好意思,65534是1个16位有符号数-2强制类型转变成16位无符号数的数值 展开
不好意思,65534是1个16位有符号数-2强制类型转变成16位无符号数的数值 展开
2个回答
展开全部
在VB6中,Integer只能表示-32768到32767之间的数字。
65534是不可能保存在Integer类型变量中的。
你可以考虑用浮点数来解决这个问题。Single就够了。
65534是不可能保存在Integer类型变量中的。
你可以考虑用浮点数来解决这个问题。Single就够了。
追问
我当然知道整数65534是不可能保存在Integer中,65534的16位二进制是1111111111111110,它也可以表示16位有符号数-2,我就是想找一个方法让65534识别为Integer变量的-2,请问有方法吗?
追答
这不是很简单,减一下65536就行了。
If LongNum > 32767 Then
IntNum = LongNum - 65536
Else
IntNum = LongNum
End If
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
可以用位运算解决的
Private Sub Command1_Click()
Dim i As Long
i = 65534
Dim o As Long
If i > CLng("&H8000") Then
'说明应该是个负数
o = i - CLng("&H8000")
End If
MsgBox "结果是:-" & o
'如果你想保存为变量值
o = o - 2 * o
MsgBox "结果是:" & o
End Sub
Private Sub Command1_Click()
Dim i As Long
i = 65534
Dim o As Long
If i > CLng("&H8000") Then
'说明应该是个负数
o = i - CLng("&H8000")
End If
MsgBox "结果是:-" & o
'如果你想保存为变量值
o = o - 2 * o
MsgBox "结果是:" & o
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询