問題
32位是幾個位元組?
4位元組。1位元組=8位。
二進位制數01011100轉換成十進位制是多少?
二進位制數00001111左移兩位後,會變成原數的幾倍?
4倍。二進位制數左移1位會變為原來的2倍。
補碼形式表示的8位二進位制數11111111,用十進位制表示的話是多少?
所有位都是1的二進位制數,用十進位制表示就是-1。
補碼形式表示的8位二進位制數10101010,用16位的二進位制數表示的話是多少?
使用原數的最高位來填充高位。1111111110101010.
反轉部分圖形模式時,使用的是什麼邏輯運算?
xor運算。xor運算只反轉與1相對應的位,not運算是反轉所有的位。
用二進位制數表示計算機資訊的原因
ic的所有引腳只有直流電壓0v或5v兩個狀態。這個特性決定了計算機的資訊資料只能用二進位制數來處理。雖然二進位制數並不是專門為ic而設計的,但和ic的特性非常吻合。
計算機處理資訊的最小單位——位bit,就相當於二進位制中的一位。8位二進位制數被稱為1個位元組。位元組是最基本的資訊計量單位。位是最小單位,位元組是基本單位。記憶體和磁碟都使用位元組單位來儲存和讀寫資料。用位元組單位處理資料時,如果數字小於儲存資料的位元組數,那麼高位上就用0填補。
什麼是二進位制數
位權的思考方式除了適用十進位制數,也同樣適用於任何進製數。而多少進製稱為基數。
移位運算和乘除運算的關係
移位運算指的是將二進位制數值的各數字進行左右移位的運算。哪怕是十進位制數,也是將其二進位制數值進行移位運算。
左移後空出來的低位用0補齊;右移時的操作要複雜一些,在下一節介紹。
移位操作使最高位或最低位溢位的數字,直接丟棄就可以了。
便於計算機處理的補數
二進位制數中表示負數值時,一般會把最高位作為符號來使用,因此我們把這個最高位稱為符號位。符號位是0時表示正數,符號位是1時表示負數。
計算機在做減法運算時,實際上內部是在做加法運算。為此,在表示負數時就需要使用二進位制的補數。補數就是用正數來表示負數。
為了獲得補數,我們需要將二進位制數的各數字的數值全部取反,然後再將結果加1。
邏輯右移和算術右移的區別
當二進位制數的值表示圖形模式而非數值時,移位後需要在最高位補0,這就稱為邏輯右移。
將二進位制數作為帶符號的數值進行運算時,移位後要在最高位填充移位前符號位的值,這就稱為算術右移。
只有在右移時才必須區分邏輯位移和算術位移。左移時,無論是圖形模式還是相乘運算,都只需在空出來的低位補0即可。
符號擴充:在保持值不變的前提下將其轉換成位數更高的二進位制數。不管是正數還是用補數表示的負數,都只需用符號位的值填充高位即可。
掌握邏輯運算的竅門
邏輯運算包括與and、或or、非not、異或xor四種。掌握邏輯運算的竅門,就是要摒棄用二進位制數表示數值這一想法,而是把它看作是圖形或者開關。邏輯運算的運算物件不是數值,因此不會出現進製的情況。
集合的二進位制整數表示
在程式中表示集合的方法有很多種,當集合中的元素個數較小時候,可以用二進位制來表示,每乙個二進位制轉換成十進位制的整數可以唯一的表示乙個集合。這個技巧也在演算法競賽中經常用到。比如有乙個集合 那麼我們可以進行如下操作 空集.0 只含有第i個元素的集合.1 i 1 向集合中加入第i個元素s s 1 比如...
二進位制浮點數表示機制
最小負數 2 2127 2 2 2 212 7 最大負數 1 2 126 1 2 1 2 1 26,0最小正數 1 2 126 1 2 1 2 12 6最大正數2 2 1272 2 2 2127 負數 1.7976931348623157e 308,4.94065645841246544e 324 ...
二進位制資訊表示
就是普通 的乙個整數 可能為負數 這個整數占用4個位元組空間 如何儲存到char型別的字元型陣列裡面,再按照單個位元組讀取的形式,在電腦本地,將資料讀取出來。比較簡單粗暴的方法 1.迴圈讀取,每次把整數的最小8位存進去,然後右移8位。比較直接的方法就是 char chrarr 10 int intv...