网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月09日漏签0天
vb吧 关注:156,019贴子:1,166,241
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 首页 上一页 1 2
  • 57回复贴,共2页
  • ,跳到 页  
<<返回vb吧
>0< 加载中...

回复:吧友们有没有对“VB6实现移位操作”感兴趣的?

  • 只看楼主
  • 收藏

  • 回复
  • Lyhoki
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我觉得,vb啥时候能支持运算符重载,你这个关注的人就会多了


  • 冼天
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1. 算术运算模拟。
2. ASM + CallWindowProc
3. 调用系统API(这8个函数需要重新封装)。
4. COM + ASM
5. VB6假操作函数 + 运行时代码替换。
这儿1和2是本贴中介绍的操作方式,效率比较低。
3到5属性“最新研究项目”。
其中4是近段时间试验结果,基本定型的;
3和5是“新鲜出炉”的,还没有正式测试过。
以“方法2”为基准:
方法3的速度,“单向移位”应该可以提升7到10倍;
循环移位因系统API没有提供,要多一些附加处理,但估计也能提升4到5倍吧。
4和5的效率应该是最高的,速度可以提升30到40倍。

小say一句,如果 4和5的速度可以达到2的40倍,那2基本就算废了。


2026-05-09 17:07:13
广告
不感兴趣
开通SVIP免广告
  • R1C8
  • 函数调用
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Option Explicit
Public Function DecToBin(Dec As String) As String
Dim Bin$
While Not Dec = 1
Bin = (Val(Dec) Mod 2) & Bin
Dec = Dec \ 2
Wend
Bin = (Val(Dec) Mod 2) & Bin
DecToBin = Bin
End Function
Function Two2Ten(ByVal Tstr As String) As Long '二进制转十进制
Dim TmpVal&, j#, i# '定义数值型变量 TmpVal
j = Len(Trim(Tstr)) '将参数Tstr去除空白后计算它的长度(几个字符) 赋值给 j
For i = 1 To j '从第一个字符开始循环到j个字符
'变量开始逐一累加i的?次方
TmpVal = IIf(Val(Mid(Tstr, j - (i - 1), 1)) > 0, TmpVal + 2 ^ (i - 1), TmpVal)
Next i
Two2Ten = TmpVal '将数值变量TmpVal返回
End Function
'Two2Ten 由CBM666大神提供
Sub Main()
Dim Bin$, Dec$, Data#
Data = 1
'对二进制串进行文本操作
Dec = CStr(Data)
Bin = DecToBin(Dec)
Bin = Bin & "00" '左移2位
Dec = CStr(Two2Ten(Bin))
MsgBox "左移2位:" & Dec
End Sub


  • lyz玉姐姐
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这是一个VB6疯狂粉丝写的高效移位代码
http://mp.weixin.qq.com/s/rijwxH6l0nrGXg3VfS9o3Q


  • 涐吢铱舊囿儚
  • 数据库
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼上的朋友的链接,他里面有张贴图:
用“内嵌机器码”,执行1亿次,耗时应该是249ms(图片不太清晰,应该是这个数据)。
换算成我的图片中的“5000万次”耗时,应该是124.5ms,而我的是120ms。
当然毕竟“时间测量”还是有误差的,这点差异可以忽略,就认为是“相同”吧。
那么现在再比较一下“硬件”:
 他的是 Core i7-6700K @ 4GHz 4核CPU(这是真4核,并且是6代CPU)
而我的是 Core i5-4210U @ 1.7GHz 双核
当然“核数”的问题可以忽略,关键是我的CPU是“移动平台” 的CPU,
在性能上、CPU主频速度上,都远远比不上他的硬件环境。
然而“相同执行次数的总耗时”却是相当的,
你说说,他的代码,与我的相比真有“优势”吗?


  • 涐吢铱舊囿儚
  • 数据库
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
VB6运用【内联汇编代码 + 轻量级COM对象】实现的移位操作
http://bbs.csdn.net/topics/392318790
就是上面17楼提到的“方法4”的实现源码。
此方法运行效率较高、适应性强。
那个“方法5”我可能就不会再发布了,只能编译后有效,不太方便。跟4相比也没强多少。
不知道有人能看到这儿不…………


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 首页 上一页 1 2
  • 57回复贴,共2页
  • ,跳到 页  
<<返回vb吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示