移位操作只是簡單地把乙個值的位向左或向右移動。在左移位中,值最左邊的幾位被丟棄,右邊多出來的幾個空位則由0補齊。右移位操作存在乙個左移位操作不曾面臨的問題:從左邊移入新位時,可以選擇兩種方案。一種是邏輯移位,左邊移入的位用0填充;另一種是算術移位,左邊移入的位由原先該值的符號位決定,符號位為1則移入的位均為1,符號位為0則移入的位均為0,這樣能夠保持原數的正負形式不變。
標準說明無符號值執行的所有移位操作都是邏輯移位,但對於有符號值,到底是採用邏輯移位還是算術移位取決於編譯器。你可以編寫乙個簡單的測試程式,看看你的編譯器使用哪種移位方式。但你的測試並不能保證其他的編譯器也會使用同樣的方式。因此,乙個程式如果使用了有符號數的右移位操作,它就是不可移植的。
位操作符有:&,|,^,它們分別執行and、or和xor操作。
單目操作符:
!操作符對它的運算元執行邏輯反操作
~操作符對整型型別的運算元進行求補操作,運算元中所有原先為1的位變為0,所有原先為0的位變為1。
c語言中的強制型別轉換與c++不同,例如:
(
float
)a
術語lexp表示左值表示式,rexp表示右值表示式。左值意味著乙個位置,而右值意味著乙個值。 5 表示式和操作符
下面的準則要牢記 有的時候覺得這個規則蠻麻煩的 1 如果左右兩邊是同乙個物件的reference,那麼返回true。這種情況都是false var now new date var arr1 now var arr2 now arr1 arr2 false 2 如果左右兩邊是數字,那麼它們的值相等就...
C 和指標第 5 章 操作符和表示式 筆記
這章標題為操作符和表示式,主要講述了操作符 布林值 左值和右值 表示式求值,下面分別簡要介紹下 算術操作符 這裡說下 和 前者求商,後者用來求模也就是求餘數,例如 include intmain void 移位運算子 也叫左移和右移,簡單點說左移幾位就是乘以2的幾次方,比如1左移1位,那麼二進位制表...
操作符和表示式
一.操作符 1.算術操作符 除了 之外其餘的幾個操作符既可以用於計算整型也可以用於計算浮點型資料,只能計算整型資料,得到的結果是餘數 2.移位操作符 右移位操作符 左移時,值最左邊的幾位被丟棄,右邊多出來的幾個空位由0補齊。右移時,從左邊移入新位有兩種方式。一種方案是邏輯移位,左邊移入的數由0填齊 ...