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

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

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

    計算機中[1]和[-1]的趣事.

    首先感謝南老師!

    ??????在計算機里的有符號數,最高位的1用來表示負號,所以,用 0000 0001表示正1,1000 0001表示-1,確實對人來說很直觀。但其實,計算機里的數是用“補碼”表示的。其中正數的補碼就是原來的數(稱為原碼),而負數的補碼是這么算的,我用倒推的來說:
    ??????補碼 = 反碼 + 1
    ??????反碼 = 原碼按位取反(1變0,0變1)
    ??????所以,-1就是1取補碼,過程如下:
    ??????先取反 0000 0001 ---> 1111 1110?
    ??????然后加1得補碼: 1111 1110 + 1 = 1111 1111?
    ????(當然這里為了方便,就取了8位,其實整數現在都是32位了,結果是32個1)。

    ?????現在,你知道如何計算-2了嗎? 為什么要搞反碼,補碼這么個轉換呢? 這個原因要說長就很長的,但簡單地講,這又是一個在人的直觀和機器的高效之間取一個平衡:
    ?????我們先來看一個10進制的數運算:
    ?????1 + (-1) = 0 //10進制中,1加負1應為0.
    ?????然后,假如用1000 0001來表示-1的話。按照計算機計算加法的規則,它是每位加的,結果是:
    ?????0000 0001 + 1000 0001 = 1000 0010??//-2
    ?????結果變成-2了,其中后面兩個0001 相加變成2,而前面的用于表示負號的1,被“繼承”下來了……顯然,原來計算機最直觀的(對人來說也很直觀的)算法,不靈了!怎么辦?痛苦

    ??? 但更痛苦的事還在0這個數上。按10進制,0和-0可是完全相等的。但如果用二進制,0000 0000 和 1000 0000 參加起運算,可是完全不同。或許可以通過電路設計,來強制讓計算機去實現一個規則: 碰到1000 0000就先轉換為0000 0000。但可要知道加減法計算是計算機計算一切的基礎,如果從這最底層就必須有一個轉換會極大影響性能!何況前面那個問題也必須有個強制規則!規則最好越簡單越好,那就是規定前面的補碼轉換規則,這個轉換過程對于計算機來說很迅速的邏輯電路轉換。

    ??? 你看,第一個問題 1 + (-1)
    ? ? 0000 0001 + 1111 1111 = 0000 0000?
    ????看明白這個計算過程嗎?其實就是最低位的兩個1相加后,造成每一位都進位,最高位直接溢出(丟了)。如果你還算不清,就算算這個10進制的:
    ????1 + 999 =??1000 (最高位1丟失,就成0了)
    ????然后是第二個問題,0的表示。如果您把0當成正數,那么它是這樣表示的:
    ????0000 0000
    ????如果你當它是負數,那么
    ????取反 1111 1111 ,再加1,以求補 ,哈哈又成 0000 0000這回在邏輯上沒有錯誤了!明白了吧?當補我在學習這一段知識時,只能說:高,實在高! 想出補碼的前輩,真是高人啊。

    posted on 2006-09-20 20:59 Find it, try it, experience it 閱讀(242) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2006年9月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    導航

    統計

    公告

    If there is any question you have, please don't hesitate, let me know ASAP, you can find me at kenees@gmail.com or QQ: 9808873, hope to make friends with you ;)

    常用鏈接

    留言簿(1)

    隨筆檔案

    文章檔案

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲乱码在线卡一卡二卡新区| 亚洲成人在线电影| 亚洲成在人线在线播放无码| 在线视频观看免费视频18| 亚洲成人福利在线| 国产妇乱子伦视频免费| 91午夜精品亚洲一区二区三区| 亚洲毛片在线免费观看| 精品亚洲国产成人| 天天天欲色欲色WWW免费| 亚洲精品第一国产综合亚AV| 免费看美女让人桶尿口| 国产成人精品亚洲一区| 亚洲va中文字幕无码| rh男男车车的车车免费网站| 亚洲美女又黄又爽在线观看| 三年片在线观看免费观看大全一| 亚洲天堂男人天堂| 黄页网站免费观看| 久久精品国产亚洲av品善| 亚洲精品99久久久久中文字幕| a级在线免费观看| 亚洲国产日韩在线一区| 日韩激情无码免费毛片| 国产免费久久精品99久久| 久久久久亚洲精品无码系列| 美女视频黄免费亚洲| 色噜噜的亚洲男人的天堂| 亚洲日韩一页精品发布| 欧美男同gv免费网站观看| 一级毛片免费在线播放| 日产亚洲一区二区三区| 日本高清免费中文字幕不卡| 中文字字幕在线高清免费电影| 亚洲视频在线免费播放| 国产在线19禁免费观看| 久久免费精品一区二区| 亚洲另类无码专区丝袜| 亚洲VA中文字幕无码一二三区| 91在线视频免费91| 中国好声音第二季免费播放|