用VB进行移位操作

2016-02-19 17:56 61 1 收藏

下面请跟着图老师小编一起来了解下用VB进行移位操作,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

【 tulaoshi.com - 编程语言 】

VB没有提供移位操作的指令和函数,只提供and(与)、or(或)、xor(异或)、eqv(同或)、not(非)等几个运算符,而编程时有时需要对一个字节进行移位操作(如进行加密),怎么办?其实只用and、or二个运算符即可搞掂。例如要将变量byte1的第八位置1(假设byte1的二进制值为01001101),则只需byte1or&h80(即01001101or10000000),如要将第八位置0,则只需byte1and&h7f。请看下面程序段是如何实现循
  环左移的:
  
  PublicFunctionbyteleft(byte1AsByte,nAsInteger)AsByte`将byte1左移n位
  DimintemAsByte`临时变量
  Dimintem1AsByte`临时变量
  Dimx,yAsInteger
  intem1=byte1
  Forx=1Ton`移多少位就循环多少次
  Fory=8To1Step-1`从第八位(左边第一位)开始循环左移
  SelectCasey
  Case8
  If(intem1And&H80)=&H80Then`如果临时变量intem1的第八位是1,
  intem=&H1`则将临时变量intem置1,
  Else
  intem=&H0`反之置0
  EndIf
  Case7
  If(intem1And&H40)=&H40Then`如果临时变量intem1的第七位是1,
  intem1=intem1Or&H80`则将其第八位置1(其它位不变),
  Else
  intem1=intem1And&H7F`反之将第八位置0(其它位不变)
  EndIf
  Case6
  If(intem1And&H20)=&H20Then`操作与上面相同
  intem1=intem1Or&H40
  Else
  intem1=intem1And&HBF
  EndIf
  Case5
  If(intem1And&H10)=&H10Then
  intem1=intem1Or&H20
  Else
  intem1=intem1And&HDF
  EndIf
  Case4
  If(intem1And&H8)=&H8Then
  intem1=intem1Or&H10
  Else
  intem1=intem1And&HEF
  EndIf
  Case3
  If(intem1And&H4)=&H4Then
  intem1=intem1Or&H8
  Else
  intem1=intem1And&HF7
  EndIf
  Case2
  If(intem1And&H2)=&H2Then
  intem1=intem1Or&H4
  Else
  intem1=intem1And&HFB
  EndIf
  Case1
  If(intem1And&H1)=&H1Then
  intem1=intem1Or&H2
  Else
  intem1=intem1And&HFD
  EndIf
  Ifintem=&H1Then`移完第一位后,如果intem是1(即第八位是1)
  intem1=intem1Or&H1`则将intem1的第一位置1
  Else
  intem1=intem1And&HFE`反之置0
  EndIf
  EndSelect
  Nexty
  Nextx
  byteleft=intem1`将intem1的值返回给函数名
  EndFunction
  参照此程序段,不难实现循环右移。
  (此程序段在VB5上调试通过。)
  ->

来源:http://www.tulaoshi.com/n/20160219/1616438.html

延伸阅读
在微软的很多软件(如WORD)的工具栏中,都采用一种浮动按钮,即正常情况下按钮的图标呈灰色,当鼠标移动到某一按钮上时,该按钮自动向上凸起且变为彩色,并在按钮的右下方有一标签提示该按钮的功能,鼠标移开后又自动还原,这种按钮用VB实现时,方法如下: 1.先用绘图工具作出按钮图标后存盘(如1.BMP),再用图像处理软件将该图标...
标签: 浏览器
利用网页浏览进行多重操作   下面我们以360安全浏览器为例,讲述网络浏览器中的多重操作设置和使用技巧。所用版本为360安全浏览器6.x谷歌内核版。 多引擎轻松由我定 一般来说,一款网络浏览器在安装时总是要指定一种搜索引擎,作为使用该浏览器上网搜索的默认选择。如果要换用另一种引擎,操作起来可能会有点麻烦。使用360...
首先,在主窗体上生成两个大小一样的按钮Command1和Command2,将它们的Style属性都设成1-Graphical,将Command1的Picture属性设为d:vbicomail01a.ico(变化前的图案,一个关闭的信封),将Command2的Picture属性设为d:vbicomail101b.ico(变化后的图案,一个打开的信封)。 其次,在主窗体的PrivateSubForm-load()中加入以下代码: Form1....
TopMost这个词也许你很陌生,但具有TopMost窗口的软件你应该早就接触过,如Office97、网络吸血鬼、IE等。所谓TopMost窗口是指哪些始终出现在桌面的最前方且不会被其它窗口覆盖的窗口,如网络吸血鬼中的下载图标。 一般憎况下,在运行VB程序时,窗口总有可能会被其它程序的窗口所覆盖。如何在自己的应用程序中实现TopMost类型的窗口呢?我们...
只要掌握了原理,你也能写出一个所谓的黑客程序。下面笔者带领大家用VB亲自编写一个远程控制程序。从而揭开它的神秘面纱。 一、所用控件 在程序中将使用Winsock控件。Winsock控件是一个ActiveX控件,使用TCP协议或UDP协 议连接到远程计算机上并与之交换数据。和定时器控件一样,Winsock控件在运行时是不可见的。Winsock的工...

经验教程

610

收藏

98
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部