在F#中, 按位运算符处理单个位, 并在求值后返回结果。
符号 | 描述 |
---|---|
& & & | 按位与运算符 |
||| | 按位或运算符 |
^^^ | 按位异或运算符 |
~~~ | 按位求反运算符 |
< < < | 按位左移运算符 |
> > > | 按位右移运算符 |
let bitwise(a:uint16, b:uint16) =
printfn "%X" (a &
&
&
b)
printfn "%X" (a ||| b)bitwise(0xFFFFus, 0xAAAAus)
在上面的代码中, 0xFFFF是一个十六进制数, 它等效于二进制? 1111。
0xAAAA是一个十六进制值, 它等效于二进制? 1010。
因此, 如果我们手动进行操作, 例如-1111 & & & 1010 = 1010, 则等于十六进制的AAAA。
【F#按位运算符】输出:
AAAA
FFFF