ÐÂÎÅ×ÊѶ
VB³ÌÐòÖÐʵÏÖ×Ö½ÚÒÆÎ»²Ù×÷ °´Î»×óÒÆ ÓÒÒÆ
2011-08-27


VB³ÌÐòÖÐʵÏÖ×Ö½ÚÒÆÎ»²Ù×÷ VB³ÌÐòÖÐʵÏÖ×Ö½ÚÒÆÎ»²Ù×÷ °´Î»×óÒÆ ÓÒÒÆ

ÔÚÀûÓÃVBϵͳ¿ª·¢Êý¾Ý²É¼¯»ò¹¤Òµ¿ØÖÆÈí¼þ£¬»ò¶ÔÎļþ½øÐеͼ¶²Ù×÷ʱ£¬³£ÐèÒª¶Ô×Ö½Ú½øÐÐÒÆÎ»²Ù×÷£¬µ«VBϵͳÖÐûÓÐÌṩ×Ö½ÚÒÆÎ»²Ù×÷µÄÖ¸ÁîºÍº¯Êý£¬Ö»ÌṩÁËAnd£¨Ó룩¡¢Or£¨»ò£©¡¢Xor£¨Òì»ò£©¡¢Equ£¨Í¬»ò£©¡¢Not£¨·Ç£©µÈ¼¸¸öÂß¼­ÔËËãÖ¸Áî¡£±ÊÕßÔÚÓÃVBϵͳ¿ª·¢¹¤Òµ¿ØÖÆÈí¼þµÄ¹ý³ÌÖУ¬¾ÍÓöµ½ÁËÕâ¸öÎÊÌ⣬ÓÚÊÇÀûÓÃVBÖÐÒÑÓеÄÂß¼­ÔËËãÖ¸ÁģÄâ»ã±àÓïÑÔµÄ×Ö½ÚÒÆÎ»Ö¸Á±àÖÆÁËÆß¸ö×Ö½ÚÒÆÎ»º¯Êý£ºÂß¼­×óÒÆ¡¢Âß¼­ÓÒÒÆ¡¢ËãÊõÓÒÒÆ¡¢Ñ­»·×óÒÆ¡¢Ñ­»·ÓÒÒÆ¡¢½øÎ»Ñ­»·×óÒÆºÍ½øÎ»Ñ­»·ÓÒÒÆ¡£


ÔÚ»ã±àÓïÑÔÖ¸ÁîÖУ¬Âß¼­×óÒÆµÄ¹¦ÄÜÏ൱ÓÚ³Ë2, Âß¼­ÓÒÒÆµÄ¹¦ÄÜÏ൱ÓÚ³ý2£¬ÀûÓÃÕâ¸öÌØÐÔ£¬ÔÚVB³ÌÐòÖÐÓóË2ºÍ³ý2·½·¨ÊµÏÖλµÄ×óÒÆºÍÓÒÒÆ£¬È»ºóÔÙÓÃAnd£¨Ó룩ºÍOr£¨»ò£©Âß¼­ÔËËãÖ¸ÁÅжÏÒÆÎ»¹ý³ÌÖÐÊÇ·ñÓнøÎ»·¢Éú£¬½«½øÐбêÖ¾ÖÃλ¡£ 


³ÌÐòÇåµ¥

CFÊǽøÎ»±êÖ¾£¬²ÉÓÃBooleanÀàÐÍÂß¼­±äÁ¿£¬Èç¹ûCFΪTrue±íʾÓнøÎ»£¬ÎªFalseÔò±íʾÎÞ½øÎ»¡£


[code]
Public CF As Boolean   '½øÎ»±êÖ¾



'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



'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

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



'7.½øÎ»Ñ­»·ÓÒÒÆ



Public Function RCR(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 128

For i = 1 To n

Fg1 = (BD And 1) * 128 'ÅжÏD0λÊÇ·ñ½øÎ»

BD = (BD \ 2) Or Fg2 '´ø½øÎ»ÓÒÒÆ

Fg2 = Fg1

Next i

CF = Fg1

RCR = BD

End Function
[/code]


½áÊøÓï

ÒÔÉÏÆß¸ö×Ö½ÚÒÆÎ»²Ù×÷º¯ÊýµÄ¹¦ÄܺÍÓ÷¨Í¬ºê»ã±àÓïÑÔµÄÒÆÎ»²Ù×÷Ö¸Áî»ù±¾Ïàͬ£¬²»¹ýÖ»¶Ôµ¥×Ö½Ú½øÐвÙ×÷£¬µ«ÉÏÊö³ÌÐòÉԼӸ͝ºó£¬¾Í¿É¶ÔË«×Ö½ÚIntegerÀàÐͺÍËÄ×Ö½ÚLongÀàÐͽøÐÐÒÆÎ»²Ù×÷¡£

¹Ø×¢¿­·¢¡¤k8¹ú¼Ê΢ÐŹ«ÖÚºÅ
Á˽â¸ü¶àÐÅÏ¢

sitemap¡¢µØÍ¼