<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    靈魂-放水

    為學日益,為道日損。

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      296 Posts :: 10 Stories :: 274 Comments :: 0 Trackbacks

    一、原碼、反碼、補碼的定義

    1、原碼的定義

    ①小數原碼的定義 

    [X] =

    X   0≤X <1
    1- X  -1 < X ≤ 0

     例如: X=+0.1011 , [X]原= 01011
            X=-0.1011  [X]原= 11011

    ②整數原碼的定義

    [X] =

    X   0≤X <2n
    2n-X  - 2n < X ≤ 0

    2、補碼的定義

    ①小數補碼的定義

    [X] =

    X    0≤X <1
    2+ X    -1 ≤ X < 0

    例如:  X=+0.1011,   [X]= 01011
            X=-0.1011,  [X]= 10101

    ②整數補碼的定義 

    [X] =

    X     0≤X <2n
    2n+1+X    - 2n ≤ X < 0


    3、反碼的定義

    ①小數反碼的定義 

    [X] =

    X     0≤X <1
    2-2n-1-X    -1 < X ≤ 0

    例如:   X=+0.1011      [X]= 01011
             X=-0.1011     [X]= 10100

    ②整數反碼的定義

    [X] =

    X     0≤X <2n
    2n+1-1-X     - 2n < X ≤ 0

    4.移碼:移碼只用于表示浮點數的階碼,所以只用于整數。

    ①移碼的定義:設由1位符號位和n位數值位組成的階碼,則 [X]=2n + X     -2n≤X ≤ 2n
    例如: X=+1011     [X]=11011     符號位“1”表示正號
                  X=-1011     [X]=00101     符號位“0”表示負號

    ②移碼與補碼的關系: [X]移與[X]補的關系是符號位互為反碼,
    例如: X=+1011     [X]=11011     [X]=01011 
                  X=-1011     [X]=00101     [X]=10101 

    ③移碼運算應注意的問題:
    ◎對移碼運算的結果需要加以修正,修正量為2n ,即對結果的符號位取反后才是移碼形式的正確結果。
    ◎移碼表示中,0有唯一的編碼——1000…00,當出現000…00時(表示-2n),屬于浮點數下溢。



    二、補碼加、減運算規則

    1、運算規則

    [X+Y]= [X]+ [Y]
    [X-Y]= [X]+ [-Y]

    若已知[Y],求[-Y]的方法是:將[Y]的各位(包括符號位)逐位取反再在最低位加1即可。
    例如:[Y]= 101101 [-Y]= 010011 

    2、溢出判斷,一般用雙符號位進行判斷:

    符號位00 表示正數 11 表示負數
    結果的符號位為01時,稱為上溢;為10時,稱為下溢

    例題:設x=0.1101,y=-0.0111,符號位為雙符號位
    用補碼求x+y,x-y 
    [x]補+[y]補=00 1101+11 1001=00 0110 
    [x-y]補=[x]補+[-y]補=00 1101+00 0111=01 0100
    結果錯誤,正溢出

    三、原碼一位乘的實現:

    設X=0.1101,Y=-0. 1011,求X*Y
    解:符號位單獨處理, x+ y
    數值部分用原碼進行一位乘,如下圖所示:
       

    高位部分積  低位部分積/乘數 說明
         0 0 0 0 0 0    1 0 1 1   起始情況
    +) 0 0 1 1 0 1 乘數最低位為1,+X

         0 0 1 1 0 1
         0 0 0 1 1 0   1 1 0 1 1(丟) 右移部分積和乘數
    +) 0 0 1 1 0 1 乘數最低位為1,+X

         0 1 0 0 1 1 
         0 0 1 0 0 1   1 1 1 0  1(丟) 右移部分積和乘數
    +) 0 0 0 0 0 0 乘數最低位為0,+0

         0 0 1 0 0 1 
         0 0 0 1 0 0   1 1 1 1 0(丟) 右移部分積和乘數
    +) 0 0 1 1 0 1 乘數最低位為1,+X

         0 1 0 0 0 1 
         0 0 1 0 0 0  1 1 1 1 1(丟) 右移部分積和乘數


    四、原碼一位除的實現:一般用不恢復余數法(加減交替法)

    部分積 低位部分積 附加位 操作說明
         0 0 0 0 0 0     1 0 1 1   起始情況
    +) 0 0 0 0 0 0 乘數最低位為1,+X

         0 0 0 0 0 0
         0 0 0 0 0 0   1 1 0 1 1(丟) 右移部分積和乘數
    +) 1 1 0 0 1 1 乘數最低位為1,+X

         0 1 0 0 1 1 
         0 0 1 0 0 1   1 1 1 0  1(丟) 右移部分積和乘數
    +) 0 0 0 0 0 0 乘數最低位為0,+0

         0 0 1 0 0 1 
         0 0 0 1 0 0   1 1 1 1 0(丟) 右移部分積和乘數
    +) 0 0 1 1 0 1 乘數最低位為1,+X

         0 1 0 0 0 1 
         0 0 1 0 0 0  1 1 1 1 1(丟) 右移部分積和乘數

    §2.5 浮點運算與浮點運算器

    一、浮點數的運算規則

    1、浮點加減法的運算步驟

    設兩個浮點數 X=Mx※2Ex Y=My※2Ey
    實現X±Y要用如下5步完成:
    ①對階操作:小階向大階看齊
    ②進行尾數加減運算
    ③規格化處理:尾數進行運算的結果必須變成規格化的浮點數,對于雙符號位的補碼尾數來說,就必須是
    001×××…×× 或110×××…××的形式
    若不符合上述形式要進行左規或右規處理。

    ④舍入操作:在執行對階或右規操作時常用“0”舍“1”入法將右移出去的尾數數值進行舍入,以確保精度。
    ⑤判結果的正確性:即檢查階碼是否溢出
    若階碼下溢(移碼表示是00…0),要置結果為機器0;
    若階碼上溢(超過了階碼表示的最大值)置溢出標志。

    例題:假定X=0 .0110011*211,Y=0.1101101*2-10(此處的數均為二進制) ?? 計算X+Y;
    解:[X]: 0 1 010 1100110
        [Y]: 0 0 110 1101101
                符號位 階碼 尾數

    第一步:求階差: │ΔE│=|1010-0110|=0100
    第二步:對階:Y的階碼小, Y的尾數右移4位
            [Y]變為 0 1 010 0000110 1101暫時保存 
    第三步:尾數相加,采用雙符號位的補碼運算 
        00 1100110 
       +00 0000110 
        00 1101100
    第四步規格化:滿足規格化要求 
    第五步:舍入處理,采用0舍1入法處理
    故最終運算結果的浮點數格式為: 0 1 010 1101101,
    即X+Y=+0. 1101101*210 

    2、浮點乘除法的運算步驟

    ①階碼運算:階碼求和(乘法)或階碼求差(除法)
        即  [Ex+Ey]移= [Ex]移+ [Ey]補 
            [Ex-Ey]移= [Ex]移+ [-Ey]補

    ②浮點數的尾數處理:浮點數中尾數乘除法運算結果要進行舍入處理
    例題:X=0 .0110011*211,Y=0.1101101*2-10
    求X※Y
    解:[X]: 0 1 010 1100110
        [Y]: 0 0 110 1101101
    第一步:階碼相加 
    [Ex+Ey]移=[Ex]移+[Ey]補=1 010+1 110=1 000 
    1 000為移碼表示的0
    第二步:原碼尾數相乘的結果為:
    0 10101101101110
    第三步:規格化處理:已滿足規格化要求,不需左規,尾數不變,階碼不變。
    第四步:舍入處理:按舍入規則,加1進行修正
    所以 X※Y= 0.1010111※2+000

    posted on 2007-09-21 17:23 放水老倌 閱讀(1604) 評論(1)  編輯  收藏 所屬分類: 讀書筆記

    Feedback

    # re: 原碼、反碼、補碼、移碼 2007-09-22 00:06 千里冰封
    這些基礎的東西尤為重要  回復  更多評論
      

    主站蜘蛛池模板: 日本免费一区二区三区四区五六区 | 亚洲色中文字幕在线播放| 日本免费人成网ww555在线| 亚洲熟女乱综合一区二区 | 美女的胸又黄又www网站免费| 毛片a级三毛片免费播放| 亚洲制服丝袜在线播放| 91成年人免费视频| 亚洲一卡2卡3卡4卡国产网站| 4hu四虎最新免费地址| 一本色道久久综合亚洲精品蜜桃冫| 国产免费的野战视频| 亚洲一级片在线播放| 夫妻免费无码V看片| 亚洲一线产品二线产品| 国产成人一区二区三区免费视频| 精品在线视频免费| 中文字幕亚洲第一| 国产99视频精品免费专区| 67pao强力打造67194在线午夜亚洲| 久草视频免费在线| 亚洲精品久久无码| 日韩精品亚洲aⅴ在线影院| 无码免费一区二区三区免费播放| 91精品国产亚洲爽啪在线影院 | 亚洲高清视频免费| 永久黄网站色视频免费观看| 高潮毛片无遮挡高清免费| 国产综合精品久久亚洲| 99视频有精品视频免费观看| 亚洲中文无码mv| 狠狠综合久久综合88亚洲| 91精品国产免费久久国语蜜臀 | 伊伊人成亚洲综合人网7777| 最近中文字幕mv免费高清视频8| 亚洲人成图片网站| 亚洲美女高清一区二区三区| 久久成人免费播放网站| 亚洲另类无码一区二区三区| 亚洲中文字幕无码久久精品1| 18禁免费无码无遮挡不卡网站 |