當前位置:首頁 > 單片機 > 單片機
[導讀]在微型計算機中,所有信息(如數(shù)值、符號和圖像等)均以二進制形式存儲、傳輸和計算。由于二進制數(shù)冗長、不方便讀寫和辨認,因此,現(xiàn)代微型計算機也支持編程時使用書寫長度更短的十六進制數(shù)和十進制數(shù),同時也為各種非數(shù)值信息提供了相應的數(shù)值編碼(即用數(shù)值表示非數(shù)值信息)方法。

微型計算機中,所有信息(如數(shù)值、符號和圖像等)均以二進制形式存儲、傳輸和計算。由于二進制數(shù)冗長、不方便讀寫和辨認,因此,現(xiàn)代微型計算機也支持編程時使用書寫長度更短的十六進制數(shù)和十進制數(shù),同時也為各種非數(shù)值信息提供了相應的數(shù)值編碼(即用數(shù)值表示非數(shù)值信息)方法。

數(shù)制

計算機應用中,最常用的數(shù)制有二進制(Binary)、十六進制(Hexadecimal)和十進制(Decimal)。本文將介紹這三種進制的數(shù)值表示方法,以及它們之間的轉換方法。

1.進制數(shù)的表示和計算

二進制數(shù)由數(shù)字0和1表示,十進制數(shù)由數(shù)字0~9表示,而十六進制數(shù)則由數(shù)字0~9以及大寫或小寫的英文字母A、B、C、D、E和F表示。表1-1給出了部分二進制數(shù)、十進制數(shù)和十六進制數(shù)之間的對應關系。

數(shù)值通常以其數(shù)制的英文名稱的開頭字母(大、小寫均可)為后綴,例如:10B、7FH和39D分別為二進制、十六進制和十進制數(shù)。十進制數(shù)的后綴字母D可以省略。進行加法計算時,二進制數(shù)、十進制數(shù)和十六進制數(shù)分別遵循“逢二進一”“逢十進一”和“逢十六進一”的原則。例如:1B+01B=10B;09D+1D=10D;09H+1H=0AH。

2.進制的轉換

任意一個數(shù)an?1an?2…a0.a?1a?2…a?m,無論其以何種進制表示,都可以按照下式轉換成對應的十進制數(shù)N:

式中,b為基數(shù),二進制數(shù)、十進制數(shù)和十六進制數(shù)的基數(shù)分別為2、10和16;ai為數(shù)的第i位,是在0~(b-1)范圍內的自然數(shù);bi為該數(shù)第i位的權值;n和m分別為該數(shù)整數(shù)部分和

小數(shù)部分的位數(shù)。可見,將任意進制數(shù)轉換為十進制數(shù)是一個加權求和的過程。例如,十六進制數(shù)0FAH=(0FH×161+0AH×160)=(15×16+10×1)=250D=250。

二進制數(shù)、十六進制數(shù)和十進制數(shù)之間的轉換方法如圖1-10所示。將十進制數(shù)轉換為二進制數(shù)和十六進制數(shù)時,應重復進行除法,直到余數(shù)為0為止,并且各次除法所得的余數(shù)中,最先得到和最后得到的余數(shù)分別為轉換結果的最低位和最高位,其他依此類推。

圖1-10進制轉換方法示意圖

數(shù)據在計算機中的表示

數(shù)據可以分為無符號數(shù)和有符號數(shù)兩類,其中無符號數(shù)的所有二進制位都是數(shù)值位,處理起來比較簡單;而有符號數(shù)有正負之分,在計算機中表示和處理起來相對復雜。本節(jié)重點介紹幾種常用有符號數(shù)的表達方式。

1.真值和機器數(shù)

計算機只能以二進制形式處理數(shù)據,包括代表數(shù)值正或負的符號“+”和“-”也只能用二進制數(shù)表示。在現(xiàn)代計算機中,通常將二進制數(shù)的最高位作為符號位以表示數(shù)的正負,該位為0代表正號,為1代表負號。這種將符號進行數(shù)值化表示的數(shù)被稱為機器數(shù),而其對應的原始數(shù)據被稱為真值。

2.原碼

原碼就是機器數(shù)。通常用[X]原表示數(shù)據X的原碼。例如,真值+18和-18所對應的8位機器數(shù)分別是[+18]原=00010010B和[-18]原=10010010B。另外計算機中存在+0和-0,[+0]原=00000000B、[-0]原=10000000B。

需要注意,在計算機中,數(shù)據所含二進制位的個數(shù)是有限的,受到CPU字長的限制。因此,將真值轉換成機器數(shù)時,必須預先明確機器數(shù)的位數(shù)。這一點,在處理反碼和補碼時也同樣要注意到。

在本書后面的章節(jié)中,若不做特別聲明,則默認CPU的字長和數(shù)據的位數(shù)均為8位。

3.反碼

正數(shù)的反碼和原碼相同。負數(shù)反碼的最高位(即符號位)為1,其余位各位為原碼各位按位取反。數(shù)據X的反碼用[X]反表示。例如:[+18]反=00010010B;[-18]反=11101101B。+0和-0的反碼不同,[+0]反=00000000B、[-0]反=11111111B。

4.補碼

正數(shù)的補碼與原碼相同,通過以下兩種方法可以得到負數(shù)X的補碼:

1)[X]補=[X]反+1。

2)[X]補=2n+X。其中,n是二進制數(shù)的位數(shù);2n為n位二進制數(shù)的“?!?可以理解為n位二進制數(shù)所能表示的不同的數(shù)的個數(shù))。

對一個字長為n的CPU,若X>0,則(2n+X)的結果是X。因為,字長為n的CPU只能完成n位二進制運算。當加法結果大于模2n時,將產生進位,使得運算結果中超出模的部分被舍棄掉,而被舍棄掉的部分的數(shù)值大小為2n,進一步可知,對于任意整數(shù)m,(2n+m×X)的結果也是X。在數(shù)學上,這種情況被稱為“同余”,即兩個整數(shù)a和b除以同一個整數(shù)K后所得的余數(shù)相同,被稱為a和b對于模K“同余”,記作:a(mod K)=b(mod K)。對于n位的CPU來說,在進行加減計算時,對于模2n同余的兩個數(shù)之間并沒有差別。

另外,設X和Y為整數(shù),則補碼還有以下運算規(guī)則:

1){[X]補}補=[X]原

2)[X+Y]補=2n+(X+Y)=2n+2n+(X+Y)=(2n+X)+(2n+Y)=[X]補+[Y]補

3)[X-Y]補=2n+(X-Y)=2n+2n+(X-Y)=(2n+X)+[2n+(-Y)]=[X]補+[-Y]補

若補碼為8位二進制數(shù),則[-18]補=28+X=256-18=238=11101110B。另外,也可以計算正

數(shù)的補碼。例如:+18的8位二進制補碼為[+18]補=28+18=18(mod 256)=18,需要說明的是,該計算過程的最后一個等號是成立的,因為8位二進制數(shù)計算過程中,第7位(最高位)的進位無法保存將被舍棄掉。

另外,根據補碼的計算方法可知,+0和-0的補碼相同,[-0]補=[+0]補=00000000B。

在現(xiàn)代微型計算機中,有符號數(shù)會自動被計算機轉換成補碼,并以補碼的形式存放和參與計算。在補碼計算過程中,符號位也參與計算,即便如此,也能得到正確的計算結果,并且引入補碼后,可以將減法運算轉換為補碼的加法運算。

常用編碼

在計算機中,常用的編碼有BCD碼和ASCII碼。

1.BCD碼

BCD碼的英文表達為Binary Coded Decimal。顧名思義,BCD碼是用二進制編碼的十進制數(shù),只能由0~9的數(shù)字構成,并且按照十進制的“逢十進一”法則進行運算。BCD碼又分為壓縮BCD碼和非壓縮BCD碼兩種,其中:壓縮BCD碼用4位二進制數(shù)表示1位十進制數(shù);而非壓縮BCD碼用8位二進制數(shù)表示1位十進制數(shù)。另外,因為按照表1-1可以方便地進行4位二進制數(shù)與1位十六進制數(shù)的轉換,并且與二進制數(shù)相比,十六進制數(shù)更易于書寫和記憶,所以,在實際應用中通常將BCD碼表示為十六進制數(shù)。

2.ASCII碼

除了數(shù)值信息外,計算機還需處理字符、按鍵等非數(shù)值信息。而這些非數(shù)值信息也必須以二進制數(shù)的方式進行編碼處理。ASCII碼是美國信息交換標準代碼(American Standard Code for Information Interchange)的簡稱,是一種應用廣泛的編碼方法。

每個ASCII編碼均由7位二進制數(shù)構成,ASCII碼表包含128個字符的ASCII碼。這些字符可以分成兩類,包括:①圖形字符,這類字符可以打印和顯示,如鍵盤上的英文字母“A”“B”和標點符號“,”“。”等;②控制類字符,這類字符不能被打印和顯示,主要用于計算機的控制操作,如PC鍵盤上的鍵和鍵等。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉