二進位制專題(持續更新)

2021-10-24 13:44:23 字數 2897 閱讀 2023

在計算機中,表示數值的數字符號只有 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

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年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...