數制也稱計數制,是用一組固定的符号和統一的規則來表示數值的方法。任何一個數制都包含兩個基本要素:基數和位權。
基數:數制所使用數碼的個數。例如,二進制的基數為2;十進制的基數為10。
位權:數制中某一位上的1所表示數值的大小(所處位置的價值)。例如,十進制的123,1的位權是100,2的位權是10,3的位權是1。二進制中的 1011 ,左起第一個1的位權是8,0的位權是4,第二個1的位權是2,第三個1的位權是1。
PLC中常用的數制有:十進制,二進制,十六進制,八進制等。此外還有BCD碼和ASCII碼也偶爾會使用。
十進制(Decimal notation):如1234=1*103 2*102 3*101 4*100,逢十進一,基數為10,單個數是0-9,每位的系數乘于基數(10)的N次方,N為其所處的位數。
二進制(Binary notation):如1101=1*23 1*22 0*21 1*20=13,逢二進一,基數為2,單個數隻有0和1, 每位的系數乘于基數(10)的N次方,N為其所處的位數。從第3位至0分别為8,4,2,1,所以二進制也成8421碼。如果表示有符号數,則用最高位表示符号,0為正數1為負數。正數以二進制原碼表示;負數則以補碼存儲,即将原碼逐位取反再加1。
十六進制(Hexdecimal notation):逢16進1的進位制。一般用數字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,這些稱作十六進制數字。
八進制(Octal notation):逢八進一,單個數有0-7,在PLC中常用于編址,數據運算應用較少。
BCD碼:(Binary-Coded Decimal)亦稱二進碼十進數或二-十進制代碼。用4位二進制數來表示1位十進制數中的0~9這10個數碼。通常時鐘采用BCD碼存儲。
ASCII:(American Standard Code for Information Interchange:美國信息交換标準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今最通用的系統,并等同于國際标準ISO/IEC 646。PLC中數據存儲隻能以0和1形式,其它數據可通過進制轉換成二進制,但是字母和一些特殊符号用什麼表示則需要約定一套轉換規則,于是美國有關的标準化組織就出台了ASCII編碼。
浮點數(float):又稱實數(REAL),浮點數是屬于有理數中某特定子集的數的數字表示,在計算機中用于近似表示任意某個實數。具體來說,這個實數由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次幂得到,這種表示方法類似于基數為10的科學計數法。
在二進制科學表示法中,S=M×2^N 主要由三部分構成:符号位 階碼(N) 尾數(M)。對于float型數據,其二進制有32位,其中符号位1位,階碼8位,尾數23位。符号位:0表示正,1表示負。階碼:這裡階碼采用移碼表示,對于float型數據其規定的偏置量為127,階碼有正有負,對于8位二進制,則其表示範圍為−128~127。比如,對于float型數據,若階碼的真實值為2,則加上127後為129,其階碼表示形式為10000010。尾數:有效數字位,即部分二進制位(小數點後面的二進制位),因為規定M的整數部分恒為1,所以這個1就不進行存儲了。下面舉例說明:
float型數據125.5轉換為标準浮點格式,125的二進制表示形式為1111101,小數部分表示為二進制為 1(小數部分乘以2,小于1則為0,大于1則為1,小數繼續乘以2,直到小數部分為0為止),則125.5二進制表示為1111101.1,由于規定尾數的整數部分恒為1,則表示為1.1111011*2^6,階碼為6,加上127為133,則表示為10000101,而對于尾數将整數部分1去掉,為1111011,在其後面補0使其位數達到23位,則為11110110000000000000000。則其二進制表示形式為:0 10000101 11110110000000000000000
那麼這些進制之間是如何轉換呢?
1.十進制轉二進制
方法為:十進制數除2取餘法,即十進制數除2,餘數為權位上的數,得到的商值繼續除2,依此步驟繼續向下運算直到商為0為止。
(具體用法如下圖)
2.二進制轉十進制
方法為:把二進制數按權展開、相加即得十進制數。
(具體用法如下圖)
3.二進制轉八進制
方法為:3位二進制數按權展開相加得到1位八進制數。(注意事項,3位二進制轉成八進制是從右到左開始轉換,不足時補0)。
(具體用法如下圖)
4.八進制轉成二進制
方法為:八進制數通過除2取餘法,得到二進制數,對每個八進制為3個二進制,不足時在最左邊補零。
(具體用法如下圖)
5.二進制轉十六進制
方法為:與二進制轉八進制方法近似,八進制是取三合一,十六進制是取四合一。(注意事項,4位二進制轉成十六進制是從右到左開始轉換,不足時補0)。
(具體用法如下圖)
6.十六進制轉二進制
方法為:十六進制數通過除2取餘法,得到二進制數,對每個十六進制為4個二進制,不足時在最左邊補零。
(具體用法如下圖)
7.十進制轉八進制或者十六進制有兩種方法
第一:間接法—把十進制轉成二進制,然後再由二進制轉成八進制或者十六進制。這裡不再做圖片用法解釋。
第二:直接法—把十進制轉八進制或者十六進制按照除8或者16取餘,直到商為0為止。
(具體用法如下圖)
8.八進制或者十六進制轉成十進制
方法為:把八進制、十六進制數按權展開、相加即得十進制數。
(具體用法如下圖)
9.BCD碼轉十進制:因為BCD碼是用四位二進制表示一位十進制數,所以轉換方法類似二進制轉十六進制“取四合一”法,四位組合後轉成十進制得到的就是十進制。
以上介紹了PLC中常用進制及相互轉換方法,意在讓初學者理解進制含義及轉換規律。真正使用時可利用計算機提供的程序員型計算器輕松運算出來。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!