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位无符号数的数值
展开
 我来答
money0_04c351c2
2014-01-08 · TA获得超过4142个赞
知道大有可为答主
回答量:5505
采纳率:49%
帮助的人:1609万
展开全部
在VB6中,Integer只能表示-32768到32767之间的数字。
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 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
oaita
2014-01-08 · TA获得超过708个赞
知道小有建树答主
回答量:669
采纳率:100%
帮助的人:806万
展开全部
可以用位运算解决的

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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式