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 编辑 ] DELPHI中有SHL和SHR表示左移和右移.
不严格的说的话,左移一位相当于乘2,右移一位相当于除2
VB的可以参考这个看看:http://www.newmcu.com/bbs/2006-7-8/64.htm
[ 本帖最后由 caterpilla 于 2006-7-16 10:56 编辑 ] 惊涛 10:54:21
DELPHI中用SHL 和 SHR
呵呵~要是那样子的话,在 VB里我们就可以用:
text2.text=val(text1.text) / 2
//但这到底不是长久的方法呀~要是右移3位,8位,那怎么算呢?
[ 本帖最后由 野猫III 于 2006-7-16 11:08 编辑 ] 原帖由 野猫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移位函数. 猫兄:
左右移位caterpilla已经讲明白了。
另外顺便问大家在VB和Delphi里的取平方根怎么编?
应该有对应的函数,maybeSQRT,我记不清了,DEPHI冇用过
如果想练习自己写函数的话,可以根据微积分来算cos,sin,sqrt,etc
查字典:
caterpillar
n.
毛虫
原来不是‘惊涛’ 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 16:22 发表
猫兄:
左右移位caterpilla已经讲明白了。
应该有对应的函数,maybeSQRT,我记不清了,DEPHI冇用过
如果想练习自己写函数的话,可以根据微积分来算cos,sin,sqrt,etc
查字典:
cater ...
少了个R都被发现了,呵呵。。。。。。。。。:P;P
页:
[1]