小弟最近在進修電腦硬體裝修課程有上到計算機概論中次元的演算法無奈小弟以前就對數字不太在行想請問一下有無神人可以用最簡單的方式替小弟解釋一下p.s小弟有辦法把數字轉換成機械語言可是要把機械語言轉換成數字我就真的搞不太懂
小弟由網路上找了一篇文章擷取裡面的一小段以下數字系統早期的電腦使用的是利用通電與否的特性的真空管,如果通電就是1,沒有通電就是0, 後來沿用至今,我們稱這種只有0/1的環境為二進位制,英文稱為binary的哩。所謂的十進位指的是逢十進一位, 因此在個位數歸為零而十位數寫成1。所以所謂的二進位,就是逢二就前進一位的意思。那二進位怎麼用呢?我們先以十進位來解釋好了。如果以十進位來說,3456的意義為:3456 = 3x103 + 4x102 + 5x101 + 6x100特別注意:『任何數值的零次方為1』所以100的結果就是1囉。 同樣的,將這個原理帶入二進位的環境中,我們來解釋一下1101010的數值轉為十進位的話,結果如下:1101010=1x26 + 1x25 + 0x24 + 1x23 + 0x22 + 1x21 + 0x20= 64 + 32 + 0x16 + 8 + 0x4 + 2 + 0x1 = 106這樣你瞭解二進位的意義了嗎?二進位是電腦基礎中的基礎喔!瞭解了二進位後,八進位、十六進位就依此類推啦! 那麼知道二進位轉成十進位後,那如果有十進位數值轉為二進位的環境時,該如何計算? 剛剛是乘法,現在則是除法就對了!我們同樣的使用十進位的106轉成二進位來測試一下好了:圖3.1.1、十進位轉二進位的方法最後的寫法就如同上面的紅色箭頭,由最後的數字向上寫,因此可得到1101010的數字囉! 這些數字的轉換系統是非常重要的,因為電腦的加減乘除都是使用這些機制來處理的! 有興趣的朋友可以再參考一下其他計算計概論的書籍中,關於1的補數/2的補數等運算方式喔!--------------------------------------------------------------------------------小弟想了解的是1101010這個數字用8進位的方法轉換成106中間的過程得到的公式為何?
個人覺得2進位轉換10進位用這個方式比較簡單~1 1 0 1 0 1 0 (2進位)-----------------------64 32 16 8 4 2 1==> 64+32+8+2=106(10進位)2進位轉換8進位用這個方式1101010 (2進位) ==> 1 | 101 | 010 ==> 152 (8進位)==> 010 = 2==> 101 = 5==> 1 = 18進位轉換10進位, 我也只知道樓上高手提到的方式~
小弟還想請問一下以隨意一個數字166來說我使用2進位推出166的機械語言為10100110這個是正確的嗎??如果是正確的那使用八進位的方法將10100110反推回去得到的數字會是166嗎如果不會原因為何??
166(10) ↓10100110(2) ↓246(8)2*8^2 + 4*8^1 + 6*8^0 = 166你從10進位轉2進位再轉8進位,最後再轉回10進位一定會跟原來的10進位一樣,只是用不同進位表示一個數而已,並沒有對那個數做其他運算如果算出來不一樣....原因就是你算錯了對了.....內建的小算盤就可以驗證你算的對不對了,例如小算盤點8進位,輸入246,然後點10進位,他就會顯示166....
LINWETIN wrote:小弟還想請問一下以隨意一個數字166來說我使用2進位推出166的機械語言為10100110這個是正確的嗎??如果是正確的那使用八進位的方法將10100110反推回去得到的數字會是166嗎如果不會原因為何??...(恕刪) 當然不是啊就像 100(十進位)表示一百,它跟100(二進位)表示的四,以及100(八進位)表示的六十四各不相同166 如果是十進位 (很重要,這是前提)是可以換算成二進位的 10100110 (四樓那邊有貼方法了)接著可由二進位再換算成八進位,因為八是二的三次方,因此三位一間隔,由右至左先寫成010 100 110 (最前方補一個 0 湊三位)接著把值算出來010 = 0x2^2 + 1x2^1 + 0x2^0 = 0x4 + 1x2 + 0x1 = 2100 = 1x2^2 + 0x2^1 + 0x2^0 = 1x4 + 0x2 + 0x1 = 4110 = 1x2^2 + 1x2^1 + 1x2^0 = 1x4 + 1x2 + 0x1 = 6所以八進位是 246若是由二進位換算十六進位,則因十六是二的四次方因此四位一間隔,由右至左寫成1010 01101010 = 1x2^3 + 0x2^2 + 1x2^1 + 0x2^0 = 1x8 + 0x4 + 1x2 + 0x1 = 10(十進位) = A(十六進位)0110 = 0x2^3 + 1x2^2 + 1x2^1 + 0x2^0 = 0x8 + 1x4 + 1x2 + 0x1 = 6(十進位) = 6(十六進位)所以十六進位是 A6