1樓:賈可
二進位制位移操作。當 x 為 1 時,1 轉為二進位制還是 1,向左位移變為 10,然後與 1 進行二進位制或運算就是 11,二進位制 11 其實就是十進位制的 3。
1 << 1 等於 00000001 << 1 等於 00000010 等於十進位制 2
2 << 1 等於 00000010 << 1 等於 00000100 等於十進位制 4
3 << 1 等於 00000011 << 1 等於 00000110 等於十進位制 6
4 << 1 等於 00000100 << 1 等於 00001000 等於十進位制 8
也不難理解向左移動多位。如向左移 2 位 00001110 << 2。
00001110
------------
00111000
同樣 c 語言中還有還有右移運算子 >>,表示按二進位制位向右移動。
而按位或運算子則是將兩個數字的二進位制值的每一位進行或運算。
1 | 1 等於 00000001 | 1 等於 00000001 | 00000001 等於 00000001 十進位制 1
2 | 1 等於 00000010 | 1 等於 00000010 | 00000001 等於 00000011 十進位制 3
3 | 1 等於 00000011 | 1 等於 00000011 | 00000001 等於 00000011 十進位制 3
4 | 1 等於 00000100 | 1 等於 00000100 | 00000001 等於 00000101 十進位制 5
或運算也就是二進位制的每一位分別進行運算,如果兩個都是 0 那麼此位為 0,至少有一個數該位為 1,或運算結果就是 1。可以看得出來,任意數與自身進行或運算還是這個數。
4 | 4 等於 00000100 | 00000100 等於 00000100 十進位制 4。
一個簡單的按位或運算子示例:
01001110
00010111
------------
01011111
上圖表示的是 78 | 23 = 95。事實上你從十進位制你看不出來有任何規律的,二進位制與、或、異或運算也只有在二進位制或者十六進位制表示才能看出來一些規律。當然這個規律不是最重要的,重要的是在程式設計中這種方式的優越性就是使用每一位 0 或 1 表示一個值的狀態,這樣即使是一個 16 位整數就可以用來表示 16 中狀態的任意組合。
2樓:匿名使用者
一定程度不了自己心裡明白為什麼:,
3樓:傲慢雪見
第一個x是左移,而第二個x是先左移然後再跟1或,比如說x=1110,執行x<<1後x變為x=1100,左移後右邊直接補0.或的話跟邏輯運算中的或是一樣的!建議你把位運算好好看看一下!
4樓:匿名使用者
x<<1: x*2
位運算,向左移一位。
5樓:掩護派
x<<1|1
左移1位,再與1按位與
相當於2x+1
為什麼?
x左移一位最後一位必定是0,然後與 1 最後一位會變成1x<<1一定是偶數
已知x 1,求證 x 1n(1 x)
證 令f x x ln 1 x f x 1 1 x 1 x 1 0 1 x 1 1 2 0 1 2 1 1 x 1 1 f x 0,函式在 1,上單調遞增。令x 1,f 1 1 ln 1 1 1 ln2ln20 f 1 0,又函式在 1,上單調遞增,因此在 1,上x ln 1 x 恆 0 x ln ...
當x 1,證明2 x 3 ,當x 1,證明2 x 3 1 x
f x 2 baix 3 1 x 2 dux 1 x 3f x 1 x 1 x zhi2 x 3 2 1 x 2 0 x 1 所以f x 在x 1時單 增dao 內f 1 0 所以在x 1時 f x 2 x 3 1 x 2 x 1 x 3 容0即2 x 3 1 x 設copyf x 4x 3 9x ...
9括號x 1的平方括號x 1的平方加6括號x 2減一括號加一
x 1 2 x 2 x 2 x 2 2x 1 x 2 4 x 2 2x 1 x 2 4 2x 5。這是一道整式的混合計算題。知識點 1。乘法公式 a b 2 a 2 2ab b 2.a b a b a 2 b 2.2。運算順序 先 乘方 後二級 乘 最後是一級 減 3。去括號法則 括號前面是負號,去...