飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4022|回复: 7

VB和Delphi程序编程里的左移右移如何表达?

[复制链接]
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-7-16 10:36:09 | 显示全部楼层 |阅读模式
    要学的东西越多,不会的东西就越多了~

    易语言里的编程是这样子的:

    .版本 2

    .程序集 窗口程序集1

    .子程序 _按钮1_被单击
    .局部变量 Name, 文本型

    Name = 编辑框1.内容
    编辑框2.内容 = 到文本 (右移 (到数值 (Name), 1))


    另外顺便问大家在VB和Delphi里的取平方根怎么编?

    ++++++++++++++++++

    要是有VB和Delphi命令查询之类的软件给咱查就好了。

    http://www.zwye.com/book/soft/280.htm

    http://www.yesky.com/SoftChannel ... 30422/1664937.shtml

    [ 本帖最后由 野猫III 于 2006-7-16 11:06 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-16 10:54:34 | 显示全部楼层
    DELPHI中有SHL和SHR表示左移和右移.
    不严格的说的话,左移一位相当于乘2,右移一位相当于除2
    VB的可以参考这个看看:http://www.newmcu.com/bbs/2006-7-8/64.htm

    [ 本帖最后由 caterpilla 于 2006-7-16 10:56 编辑 ]
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

     楼主| 发表于 2006-7-16 11:00:01 | 显示全部楼层
    惊涛 10:54:21
    DELPHI中用SHL 和 SHR

    呵呵~要是那样子的话,在 VB里我们就可以用:

    text2.text=val(text1.text) / 2

    //但这到底不是长久的方法呀~要是右移3位,8位,那怎么算呢?

    [ 本帖最后由 野猫III 于 2006-7-16 11:08 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-16 11:46:31 | 显示全部楼层
    原帖由 野猫III 于 2006-7-16 11:00 发表
    惊涛 10:54:21
    DELPHI中用SHL 和 SHR

    呵呵~要是那样子的话,在 VB里我们就可以用:

    text2.text=val(text1.text) / 2

    //但这到底不是长久的方法呀~要是右移3位,8位,那怎么算呢?

    应该有求N次方的函数吧,呵呵.VAL(TEXT1.TEXT)/POW(2,N),可能是这个样子.
    上面给出的链接中有自定义的VB移位函数.
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-16 16:22:43 | 显示全部楼层
    猫兄:
           左右移位caterpilla已经讲明白了。
    另外顺便问大家在VB和Delphi里的取平方根怎么编?


    应该有对应的函数,maybe  SQRT,我记不清了,DEPHI冇用过

    如果想练习自己写函数的话,可以根据微积分来算cos,sin,sqrt,etc



    查字典:
    caterpillar
    n.
    毛虫
    原来不是‘惊涛’
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

     楼主| 发表于 2006-7-16 16:29:57 | 显示全部楼层
    lhl8730 17:52:34
    1.逻辑左移

          Public Function SHL(OPR As Byte, n As Integer) As Byte
          Dim BD As Byte
          Dim I As Integer
          BD = OPR
          For i = 1 To n - 1
          BD = (BD And &H7F) * 2 '将D7位屏蔽左移,防止字节溢出
          Next i
          CF = BD And &H80 '判断D7位是否进位
          SHL = (BD And &H7F) * 2
          End Function


          '2.逻辑右移

          Public Function SHR(OPR As Byte, n As Integer) As Byte
          Dim BD As Byte
          Dim I As Integer
          BD = OPR
          For i = 1 To n - 1
          BD = BD \ 2 '右移
          Next i
          CF = BD And 1 '判断D0位是否进位
          SHR = BD \ 2
          End Function


          '3.算术右移

          Public Function SAR(OPR As Byte, n As Integer) As Byte
          Dim BD As Byte
          Dim I As Integer
          Dim Fg1 As Byte
          BD = OPR
          Fg1 = BD And &H80
          For i = 1 To n - 1
          BD = BD \ 2 '右移
          Next i
          CF = BD And 1 '判断D0位是否进位
          BD = BD \ 2 '右移
          SAR = BD Or Fg1
          End Function


          '4.循环左移

          Public Function ROL(OPR As Byte, n As Integer) As Byte
          Dim BD As Byte
          Dim I As Integer
          Dim Fg1 As Byte
          BD = OPR
          For i = 1 To n
          Fg1 = (BD And &H80) \ 128 '判断D7位是否进位
          BD = ((BD And &H7F) * 2) Or Fg1 '带进位左移
          Next i
          CF = Fg1
          ROL = BD
          End Function
    lhl8730 18:00:21
    5.循环右移



    Public Function ROR(OPR As Byte, n As Integer) As Byte

    Dim BD As Byte

    Dim I As Integer

    Dim Fg1 As Byte

    Dim Fg2 As Byte

    BD = OPR

    For i = 1 To n<

    /SPAN>

    Fg1 = (BD And 1) * 128 '判断D0位是否进位

    BD = (BD \ 2) Or Fg1 '带进位右移

    Next i

    CF = Fg1

    ROR = BD

    End Function



    '6.进位循环左移



    Public Function RCL(OPR As Byte, n As Integer) As Byte

    Dim BD As Byte

    Dim I As Integer

    Dim Fg1 As Byte

    Dim Fg2 As Byte

    BD = OPR

    Fg2 = CF And 1

    For i = 1 To n

    Fg1 = (BD And &H80) \ 128 '判断D7位是否进位

    BD = ((BD And &H7F) * 2) Or Fg2 '带进位左移

    Fg2 = Fg1

    Next i

    CF = Fg1

    RCL = BD

    End Function

    野猫III 18:03:55
    不明白
    野猫III18:03:58
      
    lhl8730 18:05:55
    函数调用

    [ 本帖最后由 野猫III 于 2006-7-16 18:09 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-16 23:45:22 | 显示全部楼层
    不错,交流很充分
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-29 21:37:47 | 显示全部楼层
    原帖由 快雪时晴 于 2006-7-16 16:22 发表
    猫兄:
           左右移位caterpilla已经讲明白了。


    应该有对应的函数,maybe  SQRT,我记不清了,DEPHI冇用过

    如果想练习自己写函数的话,可以根据微积分来算cos,sin,sqrt,etc



    查字典:
    cater ...

    少了个R都被发现了,呵呵。。。。。。。。。:P;P
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表