⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m16.htm

📁 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程
💻 HTM
字号:
<html>
<head>
<title>VB教程</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
 
</head>
<p align="center"><script src="../../1.js"></script></a>

<body bgcolor="#ffffff" leftmargin="5" topmargin="1" marginheight="5" marginwidth="5">
<div align=center> 
  <table border=0 cellpadding=0 cellspacing=0 width=680 align="center">
    <tbody> 
     
    <tr> 
      <td bgcolor=#000000 height=14> 
        <div align=center class=H1>    <font color="#FFFFFF">VB程序中实现字节移位操作</font> </font> </font></div>
      </td>
    </tr>
    <tr valign=top> 
      <td class=H1 height=236> 
        <p align="left">   <font color="#000000">来源:www.ccidnet.com<br>
          <br>
          在利用VB系统开发数据采集或工业控制软件,或对文件进行低级操作时,常需要对字节进行移位操作,但VB系统中没有提供字节移位操作的指令和函数,只提供了And(与)、Or(或)、Xor(异或)、Equ(同或)、Not(非)等几个逻辑运算指令。笔者在用VB系统开发工业控制软件的过程中,就遇到了这个问题,于是利用VB中已有的逻辑运算指令,模拟汇编语言的字节移位指令,编制了七个字节移位函数:逻辑左移、逻辑右移、算术右移、循环左移、循环右移、进位循环左移和进位循环右移。 
          <br>
          <br>
          在汇编语言指令中,逻辑左移的功能相当于乘2, 逻辑右移的功能相当于除2,利用这个特性,在VB程序中用乘2和除2方法实现位的左移和右移,然后再用And(与)和Or(或)逻辑运算指令,判断移位过程中是否有进位发生,将进行标志置位。 
          <br>
          <br>
          程序清单 <br>
          CF是进位标志,采用Boolean类型逻辑变量,如果CF为True表示有进位,为False则表示无进位。 <br>
          <br>
          Public CF As Boolean   '进位标志 <br>
          <br>
          '1.逻辑左移 <br>
          <br>
          Public Function SHL(OPR As Byte, n As Integer) As Byte<br>
          Dim BD As Byte<br>
          Dim I As Integer<br>
          BD = OPR<br>
          For i = 1 To n - 1<br>
          BD = (BD And &amp;H7F) * 2 '将D7位屏蔽左移,防止字节溢出<br>
          Next i<br>
          CF = BD And &amp;H80 '判断D7位是否进位<br>
          SHL = (BD And &amp;H7F) * 2<br>
          End Function<br>
          <br>
          <br>
          '2.逻辑右移 <br>
          <br>
          Public Function SHR(OPR As Byte, n As Integer) As Byte<br>
          Dim BD As Byte<br>
          Dim I As Integer<br>
          BD = OPR<br>
          For i = 1 To n - 1<br>
          BD = BD \ 2 '右移<br>
          Next i<br>
          CF = BD And 1 '判断D0位是否进位<br>
          SHR = BD \ 2<br>
          End Function<br>
          <br>
          <br>
          '3.算术右移 <br>
          <br>
          Public Function SAR(OPR As Byte, n As Integer) As Byte<br>
          Dim BD As Byte<br>
          Dim I As Integer<br>
          Dim Fg1 As Byte<br>
          BD = OPR<br>
          Fg1 = BD And &amp;H80<br>
          For i = 1 To n - 1<br>
          BD = BD \ 2 '右移<br>
          Next i<br>
          CF = BD And 1 '判断D0位是否进位<br>
          BD = BD \ 2 '右移<br>
          SAR = BD Or Fg1<br>
          End Function<br>
          <br>
          <br>
          '4.循环左移 <br>
          <br>
          Public Function ROL(OPR As Byte, n As Integer) As Byte<br>
          Dim BD As Byte<br>
          Dim I As Integer<br>
          Dim Fg1 As Byte<br>
          BD = OPR<br>
          For i = 1 To n<br>
          Fg1 = (BD And &amp;H80) \ 128 '判断D7位是否进位<br>
          BD = ((BD And &amp;H7F) * 2) Or Fg1 '带进位左移<br>
          Next i<br>
          CF = Fg1<br>
          ROL = BD<br>
          End Function<br>
          <br>
          <br>
          '5.循环右移 <br>
          <br>
          Public Function ROR(OPR As Byte, n As Integer) As Byte <br>
          </font> <br>
          </span>                                          </span>     
            </b></font> </p>
      </td>
    </tr>
  
  </table>
</div>


<p align="center"><a href="../../pian/vb.htm">回首页</a>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -