如何屏蔽十六进制运算的溢出?

geyro 2005-08-05 09:40:54
十六进制6379EC3C执行如下操作:
ebp="6379EC3C"
d = Format("&H" + ebp) + Format("&H" + ebp) * 4
Text2.Text = Hex(d)
执行后运算溢出。
请教如何可以正常运算,结果只要后八位就可以了,有劳各位高手。
...全文
141 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
geyro 2005-08-06
  • 打赏
  • 举报
回复
是否是这样?
ebp = "6379EC3C"
a = Format("&H" + ebp)
b = Format("&H" + ebp) * 4
aa = (a And "0xfffffff0") / 16
bb = (b And "0xfffffff0") / 16
cc = aa + bb
cc = cc And "0xffffff"
cc = cc * 16
c = cc + (a And "0xf") + (b And "0xf")
Text1.Text = c
这个似乎执行有问题啊
TaiJi1985 2005-08-06
  • 打赏
  • 举报
回复
是啊,低八位啊
geyro 2005-08-06
  • 打赏
  • 举报
回复
TaiJi1985(太极) 兄弟,我要取的是低八位,也是这个方法么?
geyro 2005-08-06
  • 打赏
  • 举报
回复
programfan论坛的badgas给了解决方法,不过还是谢谢上面几位。
threenewbee 2005-08-06
  • 打赏
  • 举报
回复
On Error Resume Next
TaiJi1985 2005-08-06
  • 打赏
  • 举报
回复

假设你的那两个数 分别是 a 和 b

取高七位 (其实是 7 个 4 位)
aa=(a and 0xfffffff0)/16
bb=( b and 0xfffffff0)/ 16
cc=aa+bb '不会溢出

去掉cc的最好一位(最高 1 个 4 位)
cc=cc and 0xffffff

cc=cc*16 ‘不会溢出

c=cc+ (a and 0xf) + (b and 0xf)


c既是要求的结果



小泽zz 2005-08-05
  • 打赏
  • 举报
回复
哈哈哈哈

7,763

社区成员

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

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