新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機機器數及編碼

        單片機機器數及編碼

        作者: 時間:2011-09-23 來源:網絡 收藏
        及其

        1、與真值
        機器只認識二進制數:0、1。
        這是因為,電路狀態常有兩個,如通、斷;高電平、低電平;…可用0、1表示。
        這種0、1、0、1…1在機器中的表現形式——。一般為8位。

        2、機器數的及運算

        對帶符號數而言,有原碼、反碼、補碼之分,計算機內一般使用補碼。

        1)原碼
        將數“數碼化”,原數前“+”用0表示,原數前“-”用1表示,數值部分為該數本身,這樣的機器數叫原碼。
        設X——原數;則[X]原=X(X0)
        [X]原=2n-1–X(X0),n為字長的位數。
        如,[+3]原=00000011B
        [-3]原=27-(-3)=10000011B
        0有兩種表示方法:00000000+0
        10000000-0
        原碼最大、最小的表示:+127、-128

        2)反碼
        規定正數的反碼等于原碼;負數的反碼是將原碼的數值位各位取反。
        [X]反=X(X0)
        [X]反=(2n–1)+X(X0)
        如,[+4]反=[+4]原=00000100B
        [-4]反=(28–1)+(-5)=11111111-00000101=11111010B
        反碼范圍:-128~+127
        兩個0;+0——00000000B
        -0——11111111B
        3)補碼
        補碼的概念:現在是下午3點,手表停在12點,可正撥3點,也可倒撥9點。即是說-9的操作可用+3來實現,在12點里:3、-9互為補碼。
        運用補碼可使減法 變成加法。
        規定:正數的補碼等于原碼。
        負數的補碼求法:1)反碼+1
        公 式:[X]補=2n+X(X0)
        如,設X=-0101110B,則[X]原=10101110B
        則[X]補=[X]反+1=11010001+00000001=11010010B
        如,[+6]補=[+6]原=00000110B
        [-6]補=28+(-6)=10000000–00000110=11111010B
        8位補碼的范圍–128~+127。
        0的個數:只一個,即00000000
        而10000000B是-128的補碼。
        原碼、反碼、補碼對照表:表1-2P10

        4)補碼的運算
        當X≥0時,[X]補=[X]反=[X]原
        [[X]補]補=[X]原
        [X]補+[Y]補=[X+Y]補
        [X-Y]補=[X+(-Y)]補
        例:已知X=52Y=38求X-Y

        計算機在做算術運算時,必需檢查溢出,以防止發生錯誤

        5)運算的溢出問題

        資 料字長(位數)有一定限制,所以資料的表示應有一個范圍。
        如字長8位時;補碼范圍-128~+127
        若運算結果超出這個范圍,便溢出。
        例:

        錯:兩個負數相加和為正數。
        可見:結果正確 (無溢出)時,Cs+1=Cs
        結果錯誤(溢出)時,Cs+1≠Cs
        溢出判斷:溢出=Cs+1Cs(即結果是0為無溢出;1為有溢出)

        十進制數的
        對機器:二進制數方便,
        對人:二進制數不直觀,習慣于十進制數。
        在編程過程中,有 時需要采用十進制運算,但機器不認識十進制數。
        怎么辦?
        可以將十進制的字符用二進制數進行編碼:

        這叫做二進制數對十進制編碼——BCD碼。
        上述每4位二進制數表示一個十進制字符,這4位中各位的權依次是:
        8、4、2、1——8421BCD碼。
        BCD碼的運算:

        (1)BCD碼加法規則
        兩個BCD數相加時,“某位”的和小于10則保持不變;
        兩個BCD數相加時,“某位”的和大于9,則和數應加6修正。
        (2)BCD碼減法規則
        兩個BCD數相減時,“某位”的差未發生借位,則差數保持不變;
        兩個BCD數相減時,“某位”發生了借位,其差應減6修正。
        這里“某位”指BCD數中的“個位”、“十位”、“百位”、……

        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理




        關鍵詞: 單片機 機器數 編碼

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 延吉市| 二连浩特市| 茶陵县| 沽源县| 郎溪县| 临高县| 巴彦县| 门头沟区| 德昌县| 交口县| 定日县| 威宁| 兴化市| 乐业县| 横山县| 出国| 离岛区| 大安市| 通化县| 芷江| 万州区| 钟山县| 四平市| 民乐县| 呈贡县| 金华市| 翁牛特旗| 巧家县| 井冈山市| 张家口市| 霍城县| 晋江市| 凤冈县| 铁岭市| 邵阳县| 营山县| 沙雅县| 集安市| 浦东新区| 泉州市| 博兴县|