小弟最近在進修電腦硬體裝修

課程有上到計算機概論中次元的演算法

無奈小弟以前就對數字不太在行

想請問一下有無神人可以用最簡單的方式替小弟解釋一下

p.s小弟有辦法把數字轉換成機械語言
可是要把機械語言轉換成數字
我就真的搞不太懂
文章關鍵字
可以舉例嗎
不太懂你到底是要問什麼
一香(箱)、兩香(箱)、三香(箱)、四香(箱)、五香(箱) (老闆聽了很爽一直搬) 老闆,我要張君雅五香海苔一包

河魨 wrote:
可以舉例嗎不太懂你到...(恕刪)


我想了很久,他應該是在問Decimal, Hexadecimal的換算吧?
小弟由網路上找了一篇文章
擷取裡面的一小段

以下

數字系統

早期的電腦使用的是利用通電與否的特性的真空管,如果通電就是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
中間的過程得到的公式為何?

LINWETIN wrote:
小弟由網路上找了一篇...(恕刪)

1101010(2進位)=152(8進位)
152(8)=1x8^2 +5x8^1 +2x8^0=64+40+2=106(10進位)
一香(箱)、兩香(箱)、三香(箱)、四香(箱)、五香(箱) (老闆聽了很爽一直搬) 老闆,我要張君雅五香海苔一包
個人覺得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 = 1


8進位轉換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 = 2
100 = 1x2^2 + 0x2^1 + 0x2^0 = 1x4 + 0x2 + 0x1 = 4
110 = 1x2^2 + 1x2^1 + 1x2^0 = 1x4 + 1x2 + 0x1 = 6
所以八進位是 246

若是由二進位換算十六進位,則因十六是二的四次方
因此四位一間隔,由右至左寫成
1010 0110
1010 = 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
多謝諸位大哥的解答
小弟總算有從鬼擋牆的迷宮中走出來一點了
還以為算出來會是一樣的
一直想說是我沒認真聽
關閉廣告
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!