在計算機二進位制中,最高位表示符號位,若為0表示正數,若為1表示負數。同時我們需要清楚知道原碼、反碼、補碼的概念,這裡請自行了解。取非/反(~):在二進位制補碼中,要獲取數字的負數,需反轉所有位並加1。比如(~-5),5是00000101,那麼-5則是:11111010 + 00000001 = 11111011,然後再取(~)是00000100,所以結果為4。若是正數,則其補碼是其本身,比如(~5),5是00000101,那麼直接取(~),所以結果為11111010,其實這個值就是6的補碼即-6。比如如下例子:
~(-3) = 2~(-2) = 1
~(-1) = 0
~0 = -1
~1 = -2
~2 = -3
由上我們可總結出:~
x =-x -1。
左移(<<):給定資料乘以2的位數次冪。例如11<<2(11 * 2^2 = 44)
有符號右移(>>):進行向右移位後,將最左邊的符號位(most significant bit msb)填充到最左邊的位,這稱為符號擴充套件,當向右移動負數時,它可以保留負號的符號。若為正數,則結果為給定資料除以2的位數次冪並捨去模。例如11>>2(11/2^2 = 2),若為負數,則結果為根據正數的結果取負數並減1,也就是(-x-1)。
無符號右移(>>>):有符號右移保留符號位,而無符號位右移則是不保留以0進行填充,也就是無符號右移主要是針對正數,此時結果和有符號右移中的資料不帶符號一致。
計算機的邏輯運算
上一節 十六進製制與資料寬度 我們提到,計算是有寬度的。比如 乙個二進位制數 1111 1111 1111 1111 b 我們用4位,4位書寫形式ffff這樣比較簡單。計算機除了算術運算外,還有邏輯運算,只有二進位制才能進行邏輯運算。邏輯運算只有對與錯,成與敗兩個結果 也就是0和1 0 0 0 0 ...
計算機中的邏輯運算
計算機中的邏輯運算又被稱作為 布林運算 分別為 邏輯與運算 邏輯或運算,邏輯非運算,邏輯異或運算。此外在閘電路中還有 同或運算 與非運算 或非運算。共七種。這七種邏輯運算中,只有 邏輯非運算 是一元邏輯運算 乙個運算引數 其他六種均是二元邏輯運算 兩個運算引數 邏輯運算只有兩個布林值 邏輯與運算,運...
計算機邏輯筆試回憶總結
廢話在前 程式設計師的面試除了考資料結構和演算法,還經常會考一些智商型別的邏輯題,而這些題目其實是有一些共同的規律和分類的,有套路可摸,相信積累總結分析之後即使碰不到原題也會有很大的啟發作用,也就是那些套路。地上本沒有套路,走的人多了也變成了套路 哈哈這是廢話。一.數字推理 1 144,121,10...