Integer类型的移位也可以用查表法,移位表占用 65535 15 2 2 个字节的内存空间。
移位表数组定义如下: aSHLW(0 to &Hffff&,1 to 15) as integer'单字的左移表
aSHRW(0 to &Hffff&,1 to 15) as integer'单字的右移表
注意:Integer是有符号类型,造表的时候要用它的无符号值来造表,同样查表的时候也要用它的无符号值来查表。(因为数组下标是不允许负数的。)
求Integer类型无符号值的方法是:(Int and &hFFFF&),注意,不等同于CLng(Int)
遗憾的是,Long类型无法造表,因为Long类型的值的范围是 4 GB,如果对它造表,那么表的大小就会超出总的内存地址空间。
查表移位的代码请参见本文附带的代码,这里就不给出了。
三 结语
要想实现本文所述的那些位操作函数其实有很多方法,本文所用的方式未必是最好的,主要是为了提供一种解决问题的思路:在编程过程中遇到难以解决的问题时,想一想能不能把大问题分解成能解决或已解决的小问题,这就是“分而治之”的策略。因笔者水平有限,本文难免会有疏漏和不足之处,欢迎批评指正,有意见或建议给我发电子邮件liuqi5521@sina.com。
本程序在 Win2000+VB6.0下调试通过。
上一页 [1] [2]
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18