野猫III 发表于 2006-7-16 10:36:09

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

要学的东西越多,不会的东西就越多了~

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

.版本 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/72348977504190464/20030422/1664937.shtml

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

caterpilla 发表于 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 编辑 ]

野猫III 发表于 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 编辑 ]

caterpilla 发表于 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移位函数.

快雪时晴 发表于 2006-7-16 16:22:43

猫兄:
       左右移位caterpilla已经讲明白了。

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


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

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



查字典:
caterpillar
n.
毛虫
原来不是‘惊涛’

野猫III 发表于 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 编辑 ]

快雪时晴 发表于 2006-7-16 23:45:22

不错,交流很充分

caterpilla 发表于 2006-7-29 21:37:47

原帖由 快雪时晴 于 2006-7-16 16:22 发表
猫兄:
       左右移位caterpilla已经讲明白了。


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

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



查字典:
cater ...
少了个R都被发现了,呵呵。。。。。。。。。:P;P
页: [1]
查看完整版本: VB和Delphi程序编程里的左移右移如何表达?