數制也稱計數制,是用一組固定的符號和統一的規則來表示數值的方法。任何一個數制都包含兩個基本要素:基數和位權。
基數:數制所使用數碼的個數。例如,二進制的基數為2;十進制的基數為10。
位權:數制中某一位上的1所表示數值的大?。ㄋ幬恢玫膬r值)。例如,十進制的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中常用進制及相互轉換方法,意在讓初學者理解進制含義及轉換規律。真正使用時可利用計算機提供的程序員型計算器輕松運算出來。
-
plc
+關注
關注
5016文章
13383瀏覽量
464743 -
數制轉換
+關注
關注
0文章
5瀏覽量
7178
原文標題:PLC中常用數制及如何轉換
文章出處:【微信號:GKB1508,微信公眾號:工控幫】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論