Bitwise operators and Shift operators
位運算符與邏輯運算符基本相似,不過后者的對象只是表示真和假的二值運算,位運算符的對象則是二進制數。Java語言中字節、字符和整數等都可以轉換為二進制,所以位運算符的對象也可以是它們。常見位運算符有:按位進行與運算 : &
按位進行或運算 : |
按位進行位異運算: ^
按位進行取反運算: ~
按位進行循環左移:<<,運算符左側對象左移由右側指定的位數,低位補0,最高位拋棄。帶符號的左移位運算相當于對左操作數進行乘2運算。
按位進行循環右移:>>,運算符左側對象右移由右側指定的位數,若值為正,在最高位插入0,若值為負,在最高位插入1,即移入的最高位和原最高符號位相同。帶符號的右移位運算相當于對左邊的運算對象進行除2運算。
按位進行無符號右移:>>>,無論運算符左邊的運算對象取值正負,都在高位插入0,即移入位始終補0.
要注意是沒有按位進行無符號左移的。位運算符的操作數只能是整數,char,byte,short,
int和long,進行位運算時,總是先將字符型值、字節型值和短整型值轉換為整型再進行位運算。位運算符游標的操作數用于指定移動的位數,按規定其不應超過左側數的進制表示位數。
The bitwise operators allow you to manipulate individual bits in an integral primitive data type.Bitwise operators perform Boolean algebra on the corresponding bits in the two arguments to produce the result. The bitwise operators come from C’s low-level orientation, where you often manipulate hardware
directly and must set the bits in hardware registers. Java was originally designed to be embedded in TV set-top boxes, so this low-level orientation still made sense. However, you probably won’t use the bitwise operators much.
The bitwise AND operator (&) produces a one in the output bit if both input bits are one; otherwise, it produces a zero.
The bitwise OR operator (|) produces a one in the output bit if either input bit is a one and produces a zero only if both input bits are zero.
The bitwise EXCLUSIVE OR, or XOR (^), produces a one in the output bit if one or the other input bit is a one, but not both.
The bitwise NOT (~, also called the ones complement operator) is a unary operator; it takes only one argument. (All other bitwise operators are binary operators.) Bitwise NOT produces the opposite of the input bit—a one if the input bit is zero, a zero if the input bit is one.
posted on 2008-05-20 13:22 九寶 閱讀(383) 評論(0) 編輯 收藏 所屬分類: Java Study(JavaThinking4)