數字系統轉換中的數字系統基礎也是學習PLC中極其重要的基礎,它是必須掌握的內容,數字系統往往離不開記憶的定址方式,S7-200Smart系列PLC中常用的數字系統有二進位數、十進位數、十六進製數,不同數字系統之間的數字可以相互轉換, 乙個數字也可以用這三個數字系統來表示;但是,在表示過程中,值的大小不會改變,但顯示方式會改變。
下面就對各基礎系統的轉換進行說明,希望大家能夠掌握其轉換的原理。
為了方便學習二進位,我們先看一下十進位數的原理,十進位數的特點是有10個數字,分別是0-9,如圖1-21所示,235中的個位數為5,代表5個1;十位數字是 3,代表三個 10;百位數字為2,代表2 100s;換句話說,它是 5 10 + 3 10 + 2 10,即 200 + 30 + 5 235。
二進位是一樣的原理,十進位有10個數字代表乙個數字,二進位有2個數字代表乙個數字,它們是組成部分。 在十進位數中,您可以將 0 到 9 的不同數字放在不同的位權重上,以表示不同大小的數字在二進位數中,也可以將不同的數字放在不同的位權重中,得到不同大小的數字,比如1-22圖中的二進位數1011,按照十進位數原理來計算,從右邊開始從位數開始得到結果。 二進位數也可以乘以右邊的數字和位權重,即 1 2 +1 2 +0 2 +2 2;即 1 1 + 1 2 + 0 4 + 1 8;最後是 1+2+0+8 11,結果是基數 1011 和基數 11。
在十進位 10 1 中,所以第一位數字表示個位數;10 10,所以第二位數字表示十;10 100,所以第三位數字表示百。 同樣,在二進位中,2 是 1,因此第一位表示個位數;2 2,所以第二位數字表示兩位數;2 4,所以第三位數字表示四位數字;2 8,所以第四位數字表示 8。
在弄清楚了二進位到十進位數的轉換之後,我們再來看看八進位數到十進位數,原理是一樣的,十進位數有10個數字代表乙個數字,八進位數有8個數字代表乙個數字,由0-7組成;它還對應於一比一的十進位數,八進位數 0-7 對應於同樣為 0-7 的十進位數。 如圖1-23所示,八進位數567到十進位數的轉換是什麼?根據二進位數轉換為十進位數的方法,是7 8 + 6 8 + 5 8,即7 1 + 6 8 + 5 64,結果是7 + 48 + 320 375,最後八進位數為567 k375。
如圖1-25所示的十六進製數由0-9和a-f(代表10到15)組成,如圖1-24所示,將十六進製數2ae換算成十進位數,即14 16 +10 16 +2 16,即14 1+10 16+2 256,結果為14+160+512 686, 和最後乙個十六進製數 2ae k686。
總結:通過上面將二進位、八進位和十六進製數轉換為十進位數,可以總結出n位權重可以用來將n基數轉換為十進位系統,展開後十進位數相加等於十進位數。
1.將整數轉換為二進位
示例:將十進位 53 轉換為二進位數。
方法1:除以n取餘數,按相反順序排列。
任何十進位數都可以用連續除法或短除法來計算,然後取餘數,最後以相反的順序排列餘數也就是說,將十進位數轉換為從 n 開始的數字,使用十進位數 n,然後取餘數並按相反的順序排列它們。
如圖1-26所示,將十進位數53換算成十進位數,可以和53一起使用 2,如果得到的結果可整除,則餘數為0,如果不可整除,餘數為1,然後用結果繼續除法,直到商的結果為0, 然後不再除法,最後得到的餘數按相反的順序排列,即為基數。
方法二:位元權重擴充套件法
根據要轉換的數字,從要轉換的數字中減去要轉換的數字,然後減去差值,直到減去結果為0,最後用“1”表示可減去的權重,經順序排列後得到二進位數,如圖1-27所示。
2.將十進位數轉換為二進位數
示例:十進位 20025 到二進位數。
整數部分如上列所示,小數部分乘以 2 四捨五入。
0.25×2=0.5 整數部分為0
0.5×2=1.0 整數部分為 1
當小數部分為0時,計算完成,如果小數部分仍然存在,則可以採用近似相等的方法計算。
蘇:20025=2#
05.將十進位數轉換為八進位數。
示例:將十進位數 900 轉換為八進位數。
根據除法n的餘數,逆序方法可以將十進位除以8,並將所得商除以8,直到商等於0。 然後以相反的順序排列得到的餘數,結果是乙個八進位數如圖 1-28 所示。
例如,將十進位數 2717 轉換為八進位數。 根據除以n的餘數,逆序方法可以將十進位除以16,並將所得商除以16,直到商等於0。 然後將得到的餘數以相反的順序排列,結果是乙個十六進製數;需要注意的是,如果餘數大於 9,則必須用十六進製數 a-f 表示,如圖 1-29 所示。
除了上面的“除n餘數,倒序”的方法外,還可以先轉換為二進位數,然後通過二進位系統將其轉換為十六進製數,如何將二進位數轉換為十六進製數可以在本小節的內容中看到二進位到十六進製數。
1. 二進位到八進位
從 2 8 開始,每 3 位二進位可以轉換為乙個八進位數;舉個例子來說明這一點,例如,如果將二進位1011 1001轉換為八進位數,則每三個數可以分成一組,從右邊開始,乘以它們的位權重,然後將加權值相加,結果為八進位數,如圖1-30所示。
2.二進位到十六進製數
從 2 16 開始,每 4 位二進位可以轉換為乙個十六進製數;例如,如果將二進位1011 1001轉換為十六進製數,則可以將每四個數分成一組,從右邊開始,乘以它們的位權重,然後將加權值相加,得到十六進製數的結果,如圖1-32所示。
從 2 16 開始,每個 4 位二進位都可以轉換為一位十六進製數,這意味著每個十六進製數都由乙個 4 位二進位數(8 4 2 1)組成,因此可以使用四位二進位數來表示 1 位十六進製數、二進位數和十六進製數之間的關係, 如表1-6所示,轉換時可按**中的對應關係進行轉換。
十六進製轉二進位時,每個十六進製為乙個組,用四位數的二進位數表示,不足四位數用0組成,勾選對應表。