靈魂-放水

          為學日益,為道日損。

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

          1. 二進制數與十進制數之間的轉換

          ⑴二進制數轉換成十進制數 

          [](11111001001)2=1×210+1×29+1×28+1×27+1×26+0×25+0×24

                            +1×23+0×22+0×21+1×20

                             =(1993)10

          (1011.101)2=1×23+0×22+1×21+1×20+1×2-1+0×2-2+1×2-3  =(11.625)10

          ⑵十進制數轉換成二進制數 

          ①十進制整數轉換成二進制整數(除基(2)取余法)

          []

          2   1993

             2   996               …………1…………0     低位二進制整數

            2   498              …………0…………1   

            2   249             …………0…………2

            2   124            …………1…………3

             2   62            …………0…………4

            2   31           …………0…………5

            2   15          …………1…………6

            2   7          …………1…………7

            2   3         …………1…………8

            2   1        …………1…………9

             0        …………1…………10     高位二進制整數

          注意,除到0商時結束2除步,回寫(從高位回到低位)余數便是所求二進制數,:(1993)10=(11111001001)2

          ②十進制純小數轉換成二進制純小數(乘基(2)取整法)

          []

                                          0.625

                                              2

                            2-1位…  1.  250         高位二進制小數

                                              2

                            2-2位…   0. 500

                                              2

                            2-3       1.000         低位二進制小數

          純小數位被全乘為0,得準確二進制純小數;否則(純小數位永遠被2乘不為全是0)只能化成滿足某一精確度要求的二進制小數的近似值。例中(0.625)10=(0.101)2是準確值,其中101是順寫的積整位(從高位到低位)數。

          2. 二進制數與八進制數之間的轉換

          ⑴二進制數轉換成八進制數(三位分組轉換法,即合三為一法) 

          []將二進制數11010001011.11011用三位分組轉換的方法轉換成八進制數。

          ①從小數點起對整數位向左,對小數位向右三位分一組,不足三位時,在最外端加補0,使之都成為三位:

          (填入0)0011 010 001 011.110 1100(填入0)

          ②將三位一組二進制數分別轉換成八進制數,并按原位置次序寫成新的記數數,即得與原數等值的八進制數:3213.66

          ③從而有:(11010001011.11011)2=(3213.66)8

          所以這樣做,是因為八進制數的不同數字恰是8個三位二進制數。

          ⑵八進制數轉換成二進制數 

          將八進制數轉換成二進制數時,正是上述方法的逆(一分為三法)。只是注意要在轉換成二進制數后,將相當于被加補的0位上的那些0略去,這些0在二進制記數中是可有可無的,它們并不影響記數值。

          [](3213.66)8=(011 010 001 011.110 110)2=(11010001011.11011)2

          八進制數與十進制數之間的轉換,我們至少可以這樣做:

          ①通過二進制數作中間過渡,將它們互轉:

          (17)10=(10001)2=(010 001)2=(21)8

          ②用“除基(8)取余法”將十進制整數轉換成八進制整數,用“乘基(8)取整法“將十進制純小數轉換成八進制純小數;至于將八進制數轉換成十進制數,只要“按位乘基冪”即可:

          []   ①由 8  17                 ②∵     0.6875

                                                             8

                       8  2……1(低位)        (高位)  5. 500

                           0                               8

                            ……2(高位)        (低位)   4.0000

                      (17)10=(21)8                (0.6875)10=(0.54)8

          ③于是,(17.6875)10=(21.54)8

          ④而(21.54)8=2×81+1×80+5×8-1+4×8-2(按位乘基冪)

                   =16+1+5×0.125+4×0.015625=(17.6875)10

          3. 二進制數與十六進制數之間的轉換

          ⑴二進制數轉換成十六進制數(四位分組轉換法,即合四為一法) 

          [](101101111100011.110101111)2=(0101 1011 1110 0011.1101 0111 1000)2

                                      =(5BE3.D78)16

          ⑵十六進制數轉換成二進制數(四位分組轉換法的逆方法,即一分為四法) 

          [](5BE3.D78)16=(0101 1011 1110 0011.1101 0111 1000)2

                        =(101101111100011.110101111)2

          十六進制數與十進制數之間的轉換和八進制數與十進制數之間的轉換的方法完全相同,對基16操作起來也很容易,這里就不再贅述了。

          需要強調的是:計算機能夠處理的任何信息,其數據形式在計算機內部都以01的方式進行存儲。任何信息要想存入計算機,都必須經過一個轉換裝置,先把計算機要處理的信息轉換成僅由01組成的二進制代碼之后再存入計算機。要把存儲于計算機內的各種信息輸出來,也必須再經過轉換裝置把二進制信息轉換成人們所熟悉的和常用的符號。這些工作是由計算機自動完成的,并不需要用戶干預。

          計算機所能處理和存儲的信息是大量的,其軟件系統要適應發展的需要,對表示信息的二進制數碼(代碼)必須進行統一的編碼,以保證計算機的通用性,否則就會造成在互換和交流時的混亂。

          通常,將十進制數字、英文字母和一些專用符號等數據都用一定長度的二進制數來表示,稱作編碼;用編碼表示的數據就稱代碼。使用計算機時,程序、控制命令、數據等在其內部(機器級上)一律都用代碼?,F在,已有許多種編碼方法,但被普遍使用的是下述的幾種方法。

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

          Feedback

          # re: 進制轉換 2007-09-22 00:07 千里冰封
          呵呵,最近研究進制了  回復  更多評論
            

          # re: 進制轉換 2007-09-24 10:57 放水老倌
          @千里冰封
          呵呵,不行噶?最近在復習好多基礎知識:)  回復  更多評論
            

          主站蜘蛛池模板: 闻喜县| 伊春市| 乌苏市| 平山县| 孝义市| 当涂县| 晴隆县| 深州市| 全州县| 富川| 贵溪市| 仙游县| 聊城市| 库尔勒市| 宁乡县| 炉霍县| 民勤县| 佛坪县| 屯留县| 康马县| 神木县| 远安县| 东源县| 永福县| 广灵县| 花垣县| 河南省| 威宁| 芜湖县| 宁明县| 务川| 天门市| 襄汾县| 尉氏县| 晋宁县| 清徐县| 安新县| 山东省| 宝丰县| 台州市| 沙坪坝区|