感谢诸位参与,代码都精彩极了,学习了~!
第8(取连续的1)、第9(求绝对值)题中,用到了一个+运算符,同样没符合要求。
; 1
MsgBox(0, BitShift(2, -5), "对2进行位运算之后,使结果为64。")
; 2
$iVar = BitOR(BitShift(0x2D041020, 16), BitShift(0x2D041020, -16))
MsgBox(0, Hex($iVar), "将0x2D041020高低位互换,即转换为0x10202D04。")
; 3
$iRandom = Random(-100, 100, 1)
MsgBox(0, BitAnd($iRandom, 1) <> 1, "判断" & $iRandom & "是否是偶数。")
; 4
$iRandom = Random(-100, 100, 1)
MsgBox(0, BitShift($iRandom, 31) <> 0, "判断" & $iRandom & "是否是负数。")
; 5
$iRandom = Random(-100, 100, 1)
MsgBox(0, BitAnd($iRandom, 7) = 7, "判断" & $iRandom & "的最后3位是否为111。")
; 6
Local $a = 7, $b = 13
$a = BitXOR($a, $b)
$b = BitXOR($a, $b)
$a = BitXOR($a, $b)
MsgBox(0, "a=" & $a & ", b=" & $b, "将$a、$b两变量的值相交换。")
; 7
$iRandom = Random(1, 100, 1)
MsgBox(0, BitXOR(BitShift(1, -9), $iRandom), "将" & $iRandom & "第10位上的数取反,其他位不变。")
; 8
$iRandom = 847
MsgBox(0, BitShift(BitXOR($iRandom, $iRandom + 1), 1), "取" & $iRandom & "右边位连续的1。")
; 9
$i = Random(-200, 100, 1)
$iVar = BitXOR(BitShift($i, 31), $i) + (BitShift($i, 31) <> 0)
MsgBox(0, $i & " -> " & $iVar, "取" & $i & "的绝对值,禁止使用Abs函数。")
; 10
$iRandom = Random(1, 100, 1)
MsgBox(0, BitOR($iRandom, 1), "将" & $iRandom & "右起第1位的数变为1。")
|