• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      原碼、反碼和補碼的教學(xué)探討

      2015-05-30 12:05:34羅嘉慶周世杰徐潔
      計算機教育 2015年10期

      羅嘉慶 周世杰 徐潔

      摘要:有符號數(shù)字的存儲包括原碼、反碼和補碼(國內(nèi)教材采用術(shù)語)3種表示,是許多計算機專業(yè)基礎(chǔ)課程的重要教學(xué)內(nèi)容,然而國內(nèi)外教材和網(wǎng)絡(luò)百科中的相關(guān)內(nèi)容存在很多不一致的地方,可能會導(dǎo)致教學(xué)中的困惑和誤區(qū)。文章將分別從講解思路、術(shù)語定義和數(shù)學(xué)本質(zhì)3方面進行對比分析并提出一些可能的改進建議,包括規(guī)范術(shù)語,注重計算機基本操作和相關(guān)數(shù)學(xué)概念,強調(diào)不同表示的產(chǎn)生原因、關(guān)系和符號位差異等。

      關(guān)鍵詞:原碼;反碼;補碼

      0.引言

      數(shù)字存儲與數(shù)字計算緊密相連,是計算機專業(yè)的基礎(chǔ)課程,如計算機導(dǎo)論、計算機組成原理、匯編語言等,是要求學(xué)生理解和掌握的重要知識點。有符號數(shù)存儲涉及數(shù)字的符號,包括原碼、反碼和補碼,又是其中的教學(xué)難點,然而眾多國內(nèi)教材包括電子工業(yè)出版社的《8086/8088宏匯編語言程序設(shè)計教程》(1998年出版)、高等教育出版社的《數(shù)字電子技術(shù)基礎(chǔ)》(1998年出版,2001年重?。?、電子工業(yè)出版社的《計算機組成原理》(2004年出版)和清華大學(xué)出版社的《匯編語言程序設(shè)計》(2009年出版)以及網(wǎng)絡(luò)百科包括百度百科和360百科(更新截止2014年11月18日),國外教材包括ComputerOrganization and Embedded System(2011年出版)和Foundations of Computer Science(2007年出版)以及網(wǎng)絡(luò)百科Wikipedia(更新截止2014年11月18日),對于有符號數(shù)存儲的講解內(nèi)容存在眾多不一致的地方,教師需要進一步分析與探討,以避免在教學(xué)過程中令學(xué)生產(chǎn)生誤解。

      1、講解思路

      1.1產(chǎn)生原因

      有符號數(shù)字的存儲有3種表示:原碼、反碼和補碼?,F(xiàn)在計算機大多選用補碼,早期部分計算機選用原碼或反碼,如IBM 709x系列采用原碼,PDP-1、CDC 160系列、CDC 6000系列、UNIVAC 1100系列和LINC計算機采用反碼。在教學(xué)過程中,學(xué)生通常會產(chǎn)生兩點疑惑:①為什么有符號數(shù)字有3種表示?②為什么計算機不選用相對直觀的原碼而選用晦澀難懂的補碼?國外網(wǎng)絡(luò)百科通過例子詳細(xì)說明了原碼和反碼在計算過程中可能出現(xiàn)的問題。具體而言,原碼的符號位不能參與計算,反碼的計算需要處理進位或借位,同時存在—0,只有補碼的計算能夠保持與無符號二進制數(shù)的計算一致。國內(nèi)教材和網(wǎng)絡(luò)百科往往從以下3方面描述:①數(shù)學(xué)表達式;②求解方法;③硬件設(shè)計的難易程度。相比較而言,國外網(wǎng)絡(luò)百科更有利于把握計算的本質(zhì),有助于學(xué)生理解不同表示產(chǎn)生的原因。

      1.2基本方法

      國外教材通常采用方法→表示的講解方式,即先介紹二進制中兩種補的方法(methods ofcomplement):眾一的補(ones' complement)和二的補(two's complement)。補的方法是一種只用正數(shù)的加法計算從一個數(shù)中減去另一個數(shù)的技術(shù)。 一個二進制數(shù)的眾一的補被定義為這個數(shù)的所有位取反(0變l,1變0)。一個n位二進制數(shù)的二的補被定義為2n的補,等同于眾一的補(取反運算)加1。然后,介紹兩種有符號數(shù)的表示:眾一的補表示(英文:ones'complement representation,中文:反碼)和二的補表示(英文:two's complement representation,中文:補碼)。眾一的補和二的補系統(tǒng)/計算(one's complement system/arithmetic and two'scomplement system/arithmetic)中的負(fù)數(shù),分別用它們對應(yīng)的正數(shù)的眾一的補和二的補表示。

      部分國內(nèi)教材則采用表示→運算的講解方式,即先定義有符號二進制數(shù)的表示,即原碼、反碼和補碼,再定義一種補碼的運算——求補運算。具體而言,求補運算被定義為一個已為補碼表示的數(shù),連同符號位一起按位求反后,在最低位加補,這種定義容易混淆概念:①如果它對應(yīng)二的補,那么可以理解為一個數(shù)學(xué)操作符,輸入不僅僅限定為已為補碼表示的數(shù),例如,一個負(fù)數(shù)對應(yīng)正數(shù)的二進制表示;②如果這種定義對應(yīng)二的補算術(shù)(two's complement arithmetic),那么指代一個系統(tǒng),這個系統(tǒng)中一些基本的算術(shù)操作如加、減和乘就與尢符號二進制數(shù)的相同。此外,還可能會產(chǎn)生以下一些問題:當(dāng)輸入一個二進制數(shù)時,計算機將如何鑒別這個數(shù)已為補碼表示(注意并非所有計算機都采用補碼)?如果不能鑒別,那么這種運算的意義何在?又將如何定義?

      1.3求解過程

      在求解有符號數(shù)表示時,國外教材出發(fā)點是數(shù)本身,給定一個有符號數(shù)χ,各種表示求解過程如下:

      符號和數(shù)量表示(英文:sign and magnituderepresentation,中文:原碼):最高位為符號位,0表示正數(shù),1表示負(fù)數(shù),剩余位為x的數(shù)量(絕對值)。

      眾一的補表示(反碼):如果x為L正數(shù),則是其二進制表示;如果χ為負(fù)數(shù),則是其對應(yīng)正數(shù)的位補(英文:bit complement/bitwise NOT,中文:按位取反)——執(zhí)行每一位邏輯否定的一元操作。

      二的補表示(補碼):如果x為正數(shù),則是其二進制表示;如果x為負(fù)數(shù),則是其對應(yīng)正數(shù)的二的補(所有位取反后加1)。

      在求解有符號數(shù)表示時,部分國內(nèi)教材出發(fā)點是原碼,同樣給定一個數(shù)x,各種表示求解方式如下:

      原碼:最高位為符號位,其余位為χ的絕對值。

      反碼:如果x為正數(shù),則與原碼相同;如果x為負(fù)數(shù),保持原碼符號位不變,其余位變反,

      補碼:如果χ為正數(shù),則與原碼相同;如果χ為負(fù)數(shù),保持原碼符號位不變,其余化先變反,然后在末位加1。

      在操作層面,國內(nèi)外教材求解結(jié)果一致,但在理解層面,國內(nèi)教材容易引起誤解:

      (1)原碼、反碼和補碼之間的關(guān)系從原碼出發(fā)求解反碼和補碼,學(xué)生會誤以為原碼是后兩者的基礎(chǔ)。原碼的出發(fā)點是符號的表示(符號位),即用O表示正數(shù),用1表示負(fù)數(shù);反碼和補碼的出發(fā)點是減法的運算,即用兩個正數(shù)的加法取代兩個數(shù)的減法,因此反碼和補碼不能簡單理解為由原碼變換而成。

      (2)原碼、反碼和補碼符號位的差異。求解反碼和補碼過程中,保持原碼符號位不變,學(xué)生會誤以為原碼、反碼和補碼的符號位相同。雖然符號位都表示數(shù)的正負(fù),但是反碼和補碼與原碼符號位的差別在于它們有權(quán)重(weight),如補碼的符號位權(quán)重為—( 2n-l)。

      2、術(shù)語定義

      2.1完備性

      國外教材關(guān)于術(shù)語定義從操作→方法→表示具有連貫性和一致性,國內(nèi)教材術(shù)語定義(包括譯著)存在混用和缺失的現(xiàn)象,表1對比了國內(nèi)外教材涉及有符號數(shù)字存儲的術(shù)語。

      從表l可以看出,大部分國內(nèi)教材對方法的術(shù)語(眾一的補和二的補)缺乏明確的定義,即求解表示(眾一的補表示和二的補表示)的過程。正因如此,部分譯著將反碼和補碼與眾一的補和二的補(參見1.2節(jié)定義)對應(yīng),另一部分譯著將反碼和補碼與眾一的補表示和二的補表示(參見1.2節(jié)定義)對應(yīng),導(dǎo)致方法和表示的術(shù)語沖突。由此可見,在定義表示的形式化描述時,更應(yīng)該關(guān)注其求解方法的定義與內(nèi)涵。

      此外,國內(nèi)教材對術(shù)語原碼/原碼表示法、反碼/反碼表示法和補碼/補碼表示法存在混用現(xiàn)象。具體而言,部分教材只使用原碼、反碼和補碼,另一部分教材將原碼/原碼表示法、反碼/反碼表示法和補碼/補碼表示法混合使用(沒有明確區(qū)分)。

      2.2規(guī)范性

      國外教材中的術(shù)語非常形象和直觀。例如,眾一的補中的“眾一”表示二進制數(shù)中的每一位都用l減去這一位替代(與按位取反效果相同);二的補中的“二”表示基數(shù)2;兩者中的“補”表明了它們之問的關(guān)系,即二的補等于眾一的補加1。國內(nèi)教材中的術(shù)語在認(rèn)知上可能造成歧義。例如,原碼中的“原”有原始的意思,學(xué)生容易誤解為原碼是反碼和補碼的基礎(chǔ)。真值被定義為日常書寫習(xí)慣中用+或-表示的數(shù),英文中有與其沖突的術(shù)語truth value(同樣翻譯為真值),又稱為邏輯值(logical value),是指相對于真的程度。在經(jīng)典邏輯中,唯一可能的真值是真和假,模糊邏輯和其他形式的多值邏輯中會使用比真和假更多的真值。此外,國內(nèi)網(wǎng)絡(luò)百科將原碼翻譯為true form并不準(zhǔn)確,對應(yīng)英文術(shù)語應(yīng)該是sign and magnitude representation。

      3、數(shù)學(xué)本質(zhì)

      3.1必要性

      形式化的描述是一把雙刃劍,一方面能夠用數(shù)學(xué)語言準(zhǔn)確地描述概念本質(zhì),另一方面會因為過度抽象而增加學(xué)生理解的難度。部分國內(nèi)教材對原碼、反碼和補碼都給出了數(shù)學(xué)表達式。原碼的定義本來非常直觀且容易理解,原碼用符號位表示數(shù)的正負(fù),而符號位沒有權(quán)重,不能直接參與運算。原碼的數(shù)學(xué)表達式可能是一個由簡變繁的過程且存在以下一些問題:這種表達式的實質(zhì)和意義是什么?是否與原碼的定義相關(guān)?原碼沒有權(quán)重或值的符號位是否能夠通過算術(shù)運算來定義?將一個負(fù)數(shù)χ的原碼定義為2n-1-X,即表示符號位的值為2n-l,相應(yīng)的運算規(guī)則如何定義?

      3.2準(zhǔn)確性

      國內(nèi)教材的數(shù)學(xué)表達存在細(xì)微差異。國外教材:在眾一的補表示中,一個負(fù)數(shù)χ被表示為其對應(yīng)正數(shù)的眾一的補,被定義為(2n-1)-(-X):在二的補表示中,一個負(fù)數(shù)x被表示為其對應(yīng)正數(shù)的二的補(相對于2n的補),被定義為2n-(一x)。國內(nèi)教材:一個負(fù)數(shù)x的反碼和補碼分別被定義為(2n-l)+x和2n+x。在計算層面,國內(nèi)外教材的運算結(jié)果一致,因為- ( -x)=x,但在理解層面,“減去一個正數(shù)”與“加上一個負(fù)數(shù)”存在明顯差異,失之毫厘,差之千里。計算機只能識別0和l組成的序列,負(fù)號并不存在。負(fù)數(shù)x可以表示為0-(-x),為了將減法轉(zhuǎn)換為加法,需要求-x(正數(shù))的算術(shù)負(fù)值。數(shù)學(xué)表達式(2n-l)+x和2n+x并不能準(zhǔn)確描述這一過程。此外,部分國內(nèi)教材直接用模運算定義反碼和補碼,模運算可以用于解釋反碼和補碼如何工作,但并不能作為其正式定義,因為它不是相關(guān)概念的直接描述。

      4、改進建議

      國內(nèi)外教材的差異可能會導(dǎo)致教學(xué)困惑和誤區(qū)。為了澄清概念和消除誤區(qū),筆者提出以下幾點改進建議。

      (1)統(tǒng)一術(shù)語:建議用“取一個數(shù)的反碼”和“取一個數(shù)的補碼”分別對應(yīng)“眾一的補”和“二的補”;用“反碼”和“補碼”分別對應(yīng)眾一的補和二的補后的結(jié)果;用“原碼表示”“反碼表示”和“補碼表示”分別對應(yīng)“符號和數(shù)量表示”“眾一的補表示”和“二的補表示”。

      (2)修改方法:在講解求解過程時,保持與補的方法(眾一的補和二的補)一致,摒棄原碼的基礎(chǔ)上求解反碼和補碼的過程。

      (3)更正定義:去掉原碼的數(shù)學(xué)表達式,將反碼和補碼的數(shù)學(xué)表達式更正為(2n-l)一(一x)和2n-(-x)。

      (4)更新百科:網(wǎng)絡(luò)百科有時比教材更有影響力,因為許多學(xué)生遇到疑問都會在網(wǎng)上求答案。截止2014年11月28日,百度百科中反碼和補碼的瀏覽次數(shù)分別達到151 035和437 146,因此有必要規(guī)范和更新網(wǎng)絡(luò)百科的相關(guān)內(nèi)容,避免將教學(xué)誤區(qū)擴大化。

      5、結(jié)語

      通過對比國內(nèi)外教材和網(wǎng)絡(luò)百科,筆者發(fā)現(xiàn)國內(nèi)部分教材關(guān)于有符號數(shù)字存儲的相關(guān)內(nèi)容包括術(shù)語、概念和定義都有待進一步明確和清晰,建議統(tǒng)一術(shù)語,更正和修改定義和方法,更新網(wǎng)絡(luò)百科相關(guān)內(nèi)容,避免在教學(xué)過程中產(chǎn)生誤區(qū)。

      枞阳县| 桑植县| 建德市| 马鞍山市| 通许县| 宾川县| 绥中县| 安平县| 塔城市| 绥中县| 千阳县| 冕宁县| 闽侯县| 南平市| 常德市| 正镶白旗| 当阳市| 原平市| 兴安盟| 涿鹿县| 仁化县| 涟源市| 保德县| 荣昌县| 万州区| 嘉义县| 大余县| 辛集市| 大新县| 讷河市| 泗洪县| 芦溪县| 万源市| 巴林右旗| 淮安市| 灵武市| 五指山市| 北票市| 南陵县| 星子县| 河西区|