導航:首頁 > 操作系統 > 單片機補碼

單片機補碼

發布時間:2022-04-16 20:13:49

1. 單片機。反碼與補碼

反碼-----按位取反-------01111111
補碼-----負數的反碼+1---1000000
注意一共有8位

2. 單片機原理及應用中的十進制數與二進制數原碼、反碼、補碼詳細解答

首先得說明的一點,原碼、反碼、補碼都是有符號定點數的表示方法。是吧,沒有符號而言就不會出現+0與-0了呀,呵呵。
原碼就是這個數本身的二進制形式。
例如:0000001 就是+1 1000001 就是-1
首先要說明的是:正數的反碼和補碼都是和原碼相同的;
還是再重申一下吧
〔1〕原碼:這個數本身的二進制形式。 例如十進制的8的原瑪就是01000,就是用二進製表示〔2〕反碼:將二進制數按位取反,所得的新二進制數稱為原二進制數的反碼。
〔3〕補碼:負數的補碼是將其原碼除符號位之外的各位求反之後在末位再加1。
正數沒什麼好講的,就說說負數吧:負數的原碼,依舊是一個數本身的二進制形式,也就是說十進制的-8的原碼就是11000[注意,第一位1是符號'-'哦];反碼呢,將二進制數按位取反,所得的新二進制數稱為原二進制數的反碼。取反操作指:原為1,變為0;原為0,變為1。(1變0; 0變1),這個簡單理解吧。實際上,這樣說不夠准確,因為我們還要除掉符號位再這樣取反。
看好了-8的原碼:11000----->-8的反碼就是原碼除了符號位之後的其他位都按位取反10111

符號位
-8原碼 1 1 0 0 0
-8反碼 1 0 1 1 1

現在懂什麼是原碼和反碼了吧,我已經盡力了,呵呵。好啦,該補碼登場啦。
補碼,簡單地說就是反碼末位〔最後一位〕+1
為什麼要設立補碼呢?
第一是為了能讓計算機執行減法:
[a-b]補=a補+(-b)補
第二個原因是為了統一正0和負0
正零:00000000
負零:10000000
這兩個數其實都是0,但他們的原碼卻有不同的表示。
但是他們的補碼是一樣的,都是00000000
特別注意,如果+1之後有進位的,要一直往前進位,包括符號位!(這和反碼是不同的!)
[10000000]補
=[10000000]反+1
=11111111+1
=(1)00000000
=00000000(最高位溢出了,符號位變成了0)

我不知道朋友您看了上面的是否真的懂了,或許還不知道什麼叫做」溢出」吧

所謂的溢出就是當我們要表示的數位不夠表示了

我們的二進制的位數一般有個具體的范圍:

例如一個位元組就是8位,超過8位當然就溢出了

以8位為例子,看好啦

符號位

0 1 1 1 1 1 1 1 1

+ 0 1

------------------------------------

0 [1]0 0 0 0 0 0 0 0

[1]表示就是進位沒地方放了,怎麼說呢,好象在十進制中,我有99個盒子已經裝了99對鞋子,當第 100雙鞋子沒地方放了一樣,超出了盒子個數,這樣就產生了所謂的溢出了

好,我們再回到上面反碼的例子,(別忘記我們是在介紹反碼了)

符號位

[ 1 0 0 0 0 0 0 0]補

=〔 1 0 0 0 0 0 0 0]反+1
= 1 1 1 1 1 1 1 1 ------看到反碼的取反操作在其中哦,0都變成1

+ 1

----------------------------------
= 1 (1) 0 0 0 0 0 0 0
= 0 0 0 0 0 0 0 0(最高位溢出了,符號位變成了0)

看到符號位也參與了計算一樣1+1就變成了0,至於進位的1就丟失了

從而變成了全0

現在我們再來看看,原碼 +0 的補碼就是:0000 0000〔原因是補碼和原瑪是一樣的〕

原瑪 -0 的補碼就是:0000 0000

是不是一樣了,這樣就消除了二異性了,不要說有-0與+0之分了

不知道朋友您是否還會覺得有什麼不妥呢????
也許你會問
10000000這個補碼表示的哪個數的補碼呢?
其實這是一個規定,這個數表示的是-128
所以n位補碼能表示的范圍是
-2^(n-1)到2^(n-1)-1
比n位原碼能表示的數多一個

原碼,反碼,補碼 都是指二進制的形式,所以十進制的對應碼為二進制數,注意負數的符號位,二進制數的碼制轉換就按照我上面說的啦,看仔細,多想一想,撿幾個數做做練習一下,你就會啦,關鍵是練習。

其實就是這樣的,單片機中的也就是計算機中的碼制轉換,單片機也叫微機嘛,即微型計算機,呵呵

3. 單片機補碼

你的三位二進制什麼意思我沒懂, 補碼的意思: 比如一個二進制數 1100 十進製表示就是12,要求1100的補碼,補碼 = 反碼 +1 ,1100的反碼就是 0011,補碼 0011+1=0100

4. 為什麼51單片機定時器賦初值十六進制數要用補碼

因為
51單片機
定時器計數是加法計數(向上),到65536時溢出
初值=65536-計數脈沖個數
可見初值就
是計數脈沖個數的
補碼

5. 什麼是單片機的補碼,有什麼意義

你的問題有個小錯誤,呵呵,補碼是一種計數方式,不分單片機哦。 使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加 法來處理。另外,兩個用補碼表示的數相加時,如果最高位(符號位) 有進位,則進位被舍棄。 補碼與原碼的轉換過程幾乎是相同的。 數值的補碼表示也分兩種情況: (1)正數的補碼:與原碼相同。 例如,+9的補碼是00001001。 (2)負數的補碼:符號位為1,其餘位為該數絕對值的原碼按位取反;然後整個數加1。 例如,-7的補碼:因為是負數,則符號位為「1」,整個為10000111;其餘7位為-7的絕對值+7的原碼 0000111按位取反為1111000;再加1,所以-7的補碼是11111001。

6. 在單片機中,什麼是補碼最好能給出定義和例子,謝謝

補碼,是正負數存入計算機時的一種形式。

利用補碼,就可把減法,轉換成加法。

利用補碼,目的是減小硬體的復雜性。

補碼,並不難理解,只是被計算機磚家搞亂了概念。

其實,小學生,都知道下面這些常識:

鍾表,倒撥 1 小時,可以用正撥 11 小時來代替。

倒撥 20 分,可以用正撥 40 分來代替。

-π/2 處的三角函數,與+3π/4 處的函數值相同。

在兩位十進制數的條件下,減一,可以用+99 代替。

如:24-1=2324+99=(1) 23。

在上面所說的,就是「補數」的概念。

為了求補數,還要知道一個「周期」,也可稱為「模」。

-------

在計算機中,沒有數字,都是二進制代碼。

補數,也就改稱為「補碼」了。

八位二進制是一個位元組。范圍是:0000 0000~1111 1111。

寫成十進制,就是 0~255,周期,就是 256。

-1,其補碼就是 256-1=255=1111 1111。

-2,其補碼就是 256-2=254=1111 1110。

-3,其補碼就是 256-3=253=1111 1101。

... ...

-128,其補碼就是 256-128=128=1000 0000。

-------

補碼的定義式:

正數的補碼 = 該數字本身。

負數的補碼 = 模+這個負數。

-------

補碼的應用:

6-2=4,用補碼計算如下:

0000 0110

+1111 1110

----------

(1) 0000 0100

進位的 1,舍棄即可。

7. 關於單片機的原碼,反碼,補碼 之 匯編程序的問題

這程序是錯誤的。
1. 它用的數據,並不是補碼,而是原碼。
因此計算起來,需要變換稱為補碼,相當的麻煩。
2. 原碼變換成補碼,先要判斷正負。
負數的原碼,才需要變換,正數不用變。
而這個程序並沒有判斷,都進行了變換,這是錯誤的。
3. 負數原碼變換到補碼,是數值部分取反加一。
而這個程序,是全部都取反了。
4. 程序中的標號,使用錯誤。
不應該用 ADD、SUB 這樣的保留字。
5. 調用了多次子程序,都沒有「返回 (RET)」。
這程序,早就跑飛了。
建議作者重新編程。

8. 單片機的補碼有什麼意義

數的原碼表示形式簡單,適用於乘除運算,但用原碼表示的數進行加減法運算比較復雜,引入補碼之後,減法運算可以用加法來實現,且數的符號位也可以當作數值一樣參與運算,因此在計算機中大都採用補碼來進行加減法運算

閱讀全文

與單片機補碼相關的資料

熱點內容
鴻蒙加密等級 瀏覽:804
cocos2dluapdf 瀏覽:491
假的加密鎖靠譜嗎 瀏覽:176
經營聖手伺服器怎麼調 瀏覽:749
arduino手機編程 瀏覽:481
西醫pdf下載 瀏覽:29
後浪電影學院pdf 瀏覽:813
程序員怎麼做到不被人嫉妒 瀏覽:669
cmd新建文件夾md命令 瀏覽:570
php數組中的數值排序 瀏覽:832
安卓手機怎麼避免小孩內購 瀏覽:171
聯想伺服器出現黃色嘆號怎麼辦 瀏覽:991
約翰編譯器製作教程 瀏覽:130
大地pdf 瀏覽:109
pdfplus 瀏覽:577
匯編O命令 瀏覽:970
plt轉pdf 瀏覽:366
魔獸60宏命令大全 瀏覽:480
php志願者網站源碼 瀏覽:875
貿易pdf 瀏覽:499