在計算機系統中,為了區分正負數,所有的數都是以補碼的形式儲存的:所以以下知識需謹記,
在位運算中有著至關重要的作用。
反碼表示法規定:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
補碼表示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。
邏輯移位和算術移位僅體現在右移的區別:
邏輯右移就是不考慮符號位,右移一位,左邊補零即可,所以複數右移動會又突然便超級大的情況,負數右移實際中不常使用。而且邏輯右移的有效性基本用於無符號數值
算術右移需要考慮符號位,右移一位,若符號位為1,就在左邊補1,;否則,就補0。所以算術右移也可以進行有符號位的除法,右移,n位就等於除2的n次方。
例如,8位二進位制數11001101分別右移一位。
邏輯右移就是[0]1100110
算術右移就是[1]1100110
原碼 補碼 反碼以及位運算
2 位運算 機器數是乙個數在計算機中的二進位制表示形式,機器數是帶符號的,在計算機中用乙個數的最高位 第一位 存放符號,正數為0,負數為1。例如1 帶符號即 1 在計算機中的最終表示形式為 0000 0001,依此類推 1的二進位制為 1000 0001。這種表示方式又叫做原碼,其中0的原碼為000...
位運算子,原碼 反碼 補碼
按位運算就把數字轉換為機器語言 二進位制的數字來運算的一種運算形式。按位與運算子 參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0 按位或運算子 參與運算的兩個值,只要其中有乙個為1,則該位結果就為1 按位異或運算子 當兩個對應的二進位相異時,結果為1 按位取反運算子 對資料的每個...
運算(原碼 補碼 反碼)
表示不帶符號向右移動二進位制數,移動後前面統統補0 兩個箭頭表示帶符號移動,沒有 這種運算子,因為左移都是補零,沒有正負數的區別。如 12 的二進位制為 1111 1111 1111 1111 1111 1111 1111 0100 12 3 即帶符號右移3位,結果是 1111 1111 1111 ...