在計算機中,表示數值的數字符號只有 0
00 和 1
11 兩個數碼,無法在二進位制數前再加正負號,
所以我們規定最高位為符號位 ,並用 0
00 表示正數符號,用 1
11 表示負數符號。
這樣,機器中的數值和符號全「數位化」了。
為簡化機器中資料的運算操作,人們採用原碼、補碼、反碼以及移碼等幾種方法對數值位和符號位統一進行編碼。
為區別起見,我們講在機器中的這些編碼稱為機器數,
(如 10000001
10000001
100000
01)而將一般書寫表示的數稱為機器數的真值。
(如 −
0000001
-0000001
−00000
01)我們一般只會記憶它們之間怎麼轉化,但是,
你知道它們究竟是什麼嗎?
原碼、補碼、反碼實際上是上文所講的 機器數 的表示方法。
它們表示的是乙個機器數的不同形式。
為什麼要有不同形式? 正如上文的高亮所說,是為了簡化機器中資料的運算操作,最後是簡化到只需要進行加法運算。
我們按慣例先介紹一下它們之間的轉化方式:
設 x
=1100110
x=1100110
x=1100
110 ,則 [x]
原=[x
]反=[
x]補=
01100110
[x]_=[x]_=[x]_=01100110
[x]原=
[x]反
=[x
]補=
0110
0110
設 x =−
1100110
x=-1100110
x=−110
0110
,則 [x]
原=
11100111
[x]_=11100111
[x]原=
1110
0111
,[ x]
反=
10011000
[x]_=10011000
[x]反=
1001
1000
,[ x]
補=
10011001
[x]_=10011001
[x]補=
1001
1001
對於正數來說,它的原碼、反碼、補碼都是它的真值本身。
對於負數來說,它的原碼是把真值前的負號換成 1
11 ,反碼是 它的原碼對所有數值位取反的結果 ,補碼是它的反碼加 1
11 。
注: [
−10000000]原
=10000000
[-10000000]_=10000000
[−1000
0000
]原=
1000
0000
如何用加法實現減法運算?
我們不把它看成 乙個數減乙個數 ,
而是乙個負數和另乙個數相加,
用補碼表示法表示這兩個數,再相加,
得到乙個 機器數 ,
把它看成補碼表示法表示的數,
最後用原碼還原,得到正確的值。
在計算機中,小數點一般有兩種表示法:
一種是小數點固定在某乙個位置的定點表示法,
另一種是小數點的位置可任意移動的浮點表示法。
定點表示法
機器中所有數的小數點是固定不變的,因而小數點就不必使用記號表示出來。
實際上,小數點可固定在任何乙個位置上。
浮點表示法
在數的定點表示法中,由於數的表示範圍較窄,常常不能滿足各種數值問題的需要。為了擴大數的表示範圍,方便使用者使用,有些計算機常採用浮點表示法。
表示乙個浮點數,要用兩部分:
尾數和階碼
尾數:用以表示數的有效數值
階碼:用以表示小數點在該數中的位置
計算機多數情況下採用浮點數表示數值,它與科學計數法相似,
把乙個二進位制數通過移動小數點位置表示成階碼和尾數兩部分:
n =2
e×
sn=2^\times s
n=2e×s
其中: e
ee 為 n
nn 的階碼,是有符號的整數,
s
ss 為 n
nn 的尾數,是數值的有效數字部分,一般規定取二進位制純小數形式。
例:1011101b=
2+7×
0.1011101
1011101b=2^\times 0.1011101
101110
1b=2
+7×0
.101
1101
101.1101b=
2+3×
0.1011101
101.1101b=2^\times 0.1011101
101.11
01b=
2+3×
0.10
1110
10.01011101b=
2−1×
0.1011101
0.01011101b=2^\times 0.1011101
0.0101
1101
b=2−
1×0.
1011
101
更新二進位制位
問題描述 給出兩個32位的整數n和m,以及兩個二進位制位的位置i和j。寫乙個方法來使得n中的第i到j位等於m m會是n中從第i為開始到第j位的子串 日期 2017 8 22 思路 由於題目的提示中已經給出,i到j有足夠的空間放置m,將n中的第i到j之間的數字全部置為0,最後與m異或即可 includ...
ACM數學專題 二進位制
二進位制加減 例題 acm數學專題 二進位制 計算兩個二進位制數的和或差。輸入 輸入由兩個二進位制數和乙個運算子組成,二進位制數和運算子之間用乙個空格分隔,格式如下 num1 op num2 其中num1和num2為要參與運算的二進位制數,二進位制數隻可能是大於零的無符號整數,且num1 num2,...
二進位制 二進位制起源
現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...