vb中位操作 (在线等,满意即结贴)

还有人用VB6吗 2010-04-20 08:41:38
一个整形变量 a
我现在想取 a 的第二字节 加上 (第一字节的后四位) 的计算结果,哪位能帮忙?
...全文
206 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
还有人用VB6吗 2010-04-20
  • 打赏
  • 举报
回复
搞定了,谢了
还有人用VB6吗 2010-04-20
  • 打赏
  • 举报
回复
谢谢,我调试下看看
白云飘飘飘 2010-04-20
  • 打赏
  • 举报
回复
首先注意,VB中的integer相当于c中的signed short,long相当于signed int,
Dim a As Integer
Dim b As Integer
Dim c As Integer


a = 19984
b = a / 256//相当于右移8位,得到第二个字节
c = a And &HF //保留第一字节的后4位
a = b + c
还有人用VB6吗 2010-04-20
  • 打赏
  • 举报
回复
第一字节的低四位与第二字节8位
Tiger_Zhao 2010-04-20
  • 打赏
  • 举报
回复
Option Explicit

Sub Main()
Dim a As Long
Dim b As Long
a = 19984
b = ((a And &HFF00&) \ &H100&) + (a And &HF&)
Debug.Print b
End Sub
还有人用VB6吗 2010-04-20
  • 打赏
  • 举报
回复
好的。在c里,是这样做的,取integer型变量的第二字节,第二字节 加上 (第一字节 and 0F)
a=19984
转换后,得到十进制的78
白云飘飘飘 2010-04-20
  • 打赏
  • 举报
回复
你先说一个具体的例子,integer是多少,计算后又是多少?
还有人用VB6吗 2010-04-20
  • 打赏
  • 举报
回复
那 &HFF0F& 呢,什么意思? 你给的这个算法能给解释下吗
还有人用VB6吗 2010-04-20
  • 打赏
  • 举报
回复
就是我转换前的 Integer 变量?
白云飘飘飘 2010-04-20
  • 打赏
  • 举报
回复
val = &HFFFFFFFF换成你自己的值
还有人用VB6吗 2010-04-20
  • 打赏
  • 举报
回复
&HFFFFFFFF ?
还有人用VB6吗 2010-04-20
  • 打赏
  • 举报
回复
&HFF0F&
是什么意思?
白云飘飘飘 2010-04-20
  • 打赏
  • 举报
回复
Dim val As Long
val = &HFFFFFFFF
val = val And &HFF0F&

Debug.Print Hex(val)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧