數(shù)制也稱計數(shù)制,是用一組固定的符號和統(tǒng)一的規(guī)則來表示數(shù)值的方法。
任何一個數(shù)制都包含兩個基本要素:基數(shù)和位權(quán)。
基數(shù):數(shù)制所使用數(shù)碼的個數(shù)。
例如,二進制的基數(shù)為2;十進制的基數(shù)為10。
位權(quán):數(shù)制中某一位上的1所表示數(shù)值的大小(所處位置的價值)。
例如,十進制的123,1的位權(quán)是100,2的位權(quán)是10,3的位權(quán)是1。
二進制中的 1011 ,左起第一個1的位權(quán)是8,0的位權(quán)是4,第二個1的位權(quán)是2,第三個1的位權(quán)是1。
PLC中常用的數(shù)制有:十進制、二進制、十六進制、八進制等。
此外還有BCD碼和ASCII碼也偶爾會使用。
十進制(Decimal?notation):
如1234=1*103+2*102+3*101+4*100,逢十進一,基數(shù)為10,單個數(shù)是0-9,每位的系數(shù)乘于基數(shù)(10)的N次方,N為其所處的位數(shù)。
二進制(Binary?notation):
如1101=1*23+1*22+0*21+1*20=13,逢二進一,基數(shù)為2,單個數(shù)只有0和1, 每位的系數(shù)乘于基數(shù)(10)的N次方,N為其所處的位數(shù)。從第3位至0分別為8,4,2,1,所以二進制也成8421碼。如果表示有符號數(shù),則用最高位表示符號,0為正數(shù)1為負(fù)數(shù)。正數(shù)以二進制原碼表示;負(fù)數(shù)則以補碼存儲,即將原碼逐位取反再加1。
十六進制(Hexdecimal?notation):
逢16進1的進位制。一般用數(shù)字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,這些稱作十六進制數(shù)字。
八進制(Octal?notation):
逢八進一,單個數(shù)有0-7,在PLC中常用于編址,數(shù)據(jù)運算應(yīng)用較少。BCD碼(Binary-Coded Decimal?):亦稱二進碼十進數(shù)或二十進制代碼。用4位二進制數(shù)來表示1位十進制數(shù)中的0~9這10個數(shù)碼。通常時鐘采用BCD碼存儲。
ASCII(American Standard Code for Information Interchange:美國信息交換標(biāo)準(zhǔn)代碼):
是基于拉丁字母的一套電腦編碼系統(tǒng),主要用于顯示現(xiàn)代英語和其他西歐語言。它是現(xiàn)今最通用的系統(tǒng),并等同于國際標(biāo)準(zhǔn)ISO/IEC 646。PLC中數(shù)據(jù)存儲只能以0和1形式,其它數(shù)據(jù)可通過進制轉(zhuǎn)換成二進制,但是字母和一些特殊符號用什么表示則需要約定一套轉(zhuǎn)換規(guī)則,于是美國有關(guān)的標(biāo)準(zhǔn)化組織就出臺了ASCII編碼。
浮點數(shù)(float):
又稱實數(shù)(REAL),浮點數(shù)是屬于有理數(shù)中某特定子集的數(shù)的數(shù)字表示,在計算機中用于近似表示任意某個實數(shù)。具體來說,這個實數(shù)由一個整數(shù)或定點數(shù)(即尾數(shù))乘以某個基數(shù)(計算機中通常是2)的整數(shù)次冪得到,這種表示方法類似于基數(shù)為10的科學(xué)計數(shù)法。
在二進制科學(xué)表示法中:S=M×2^N
主要由三部分構(gòu)成:符號位+階碼(N)+尾數(shù)(M)。對于float型數(shù)據(jù),其二進制有32位,其中符號位1位,階碼8位,尾數(shù)23位。
符號位:0表示正,1表示負(fù)。
階碼:這里階碼采用移碼表示,對于float型數(shù)據(jù)其規(guī)定的偏置量為127,階碼有正有負(fù),對于8位二進制,則其表示范圍為?128~127。比如,對于float型數(shù)據(jù),若階碼的真實值為2,則加上127后為129,其階碼表示形式為10000010。
尾數(shù):有效數(shù)字位,即部分二進制位(小數(shù)點后面的二進制位),因為規(guī)定M的整數(shù)部分恒為1,所以這個1就不進行存儲了。
舉例說明
float型數(shù)據(jù)125.5轉(zhuǎn)換為標(biāo)準(zhǔn)浮點格式,125的二進制表示形式為1111101,小數(shù)部分表示為二進制為 1(小數(shù)部分乘以2,小于1則為0,大于1則為1,小數(shù)繼續(xù)乘以2,直到小數(shù)部分為0為止),則125.5二進制表示為1111101.1,由于規(guī)定尾數(shù)的整數(shù)部分恒為1,則表示為1.1111011*2^6,階碼為6,加上127為133,則表示為10000101,而對于尾數(shù)將整數(shù)部分1去掉,為1111011,在其后面補0使其位數(shù)達(dá)到23位,則為11110110000000000000000。則其二進制表示形式為:0 10000101 11110110000000000000000
那么這些進制之間是如何轉(zhuǎn)換呢?
1.十進制轉(zhuǎn)二進制方法為:
十進制數(shù)除2取余法,即十進制數(shù)除2,余數(shù)為權(quán)位上的數(shù),得到的商值繼續(xù)除2,依此步驟繼續(xù)向下運算直到商為0為止。(具體用法如下圖)
2.二進制轉(zhuǎn)十進制方法為:
把二進制數(shù)按權(quán)展開、相加即得十進制數(shù)。(具體用法如下圖)
3.二進制轉(zhuǎn)八進制方法為:
3位二進制數(shù)按權(quán)展開相加得到1位八進制數(shù)。(注意事項,3位二進制轉(zhuǎn)成八進制是從右到左開始轉(zhuǎn)換,不足時補0)。(具體用法如下圖)
4.八進制轉(zhuǎn)成二進制方法為:
八進制數(shù)通過除2取余法,得到二進制數(shù),對每個八進制為3個二進制,不足時在最左邊補零。(具體用法如下圖)
5.二進制轉(zhuǎn)十六進制方法為:
與二進制轉(zhuǎn)八進制方法近似,八進制是取三合一,十六進制是取四合一。(注意事項,4位二進制轉(zhuǎn)成十六進制是從右到左開始轉(zhuǎn)換,不足時補0)。(具體用法如下圖)
6.十六進制轉(zhuǎn)二進制方法為:
十六進制數(shù)通過除2取余法,得到二進制數(shù),對每個十六進制為4個二進制,不足時在最左邊補零。(具體用法如下圖)
7.十進制轉(zhuǎn)八進制或者十六進制有兩種方法:
第一:間接法—把十進制轉(zhuǎn)成二進制,然后再由二進制轉(zhuǎn)成八進制或者十六進制。這里不再做圖片用法解釋。
第二:直接法—把十進制轉(zhuǎn)八進制或者十六進制按照除8或者16取余,直到商為0為止。(具體用法如下圖)
8.八進制或者十六進制轉(zhuǎn)成十進制方法為:
把八進制、十六進制數(shù)按權(quán)展開、相加即得十進制數(shù)。(具體用法如下圖)
9.BCD碼轉(zhuǎn)十進制:
因為BCD碼是用四位二進制表示一位十進制數(shù),所以轉(zhuǎn)換方法類似二進制轉(zhuǎn)十六進制“取四合一”法,四位組合后轉(zhuǎn)成十進制得到的就是十進制。以上介紹了PLC中常用進制及相互轉(zhuǎn)換方法,意在讓初學(xué)者理解進制含義及轉(zhuǎn)換規(guī)律。真正使用時可利用計算機提供的程序員型計算器輕松運算出來。
-
plc
+關(guān)注
關(guān)注
5010文章
13271瀏覽量
463068 -
存儲
+關(guān)注
關(guān)注
13文章
4296瀏覽量
85801 -
BCD
+關(guān)注
關(guān)注
1文章
88瀏覽量
29716 -
代碼
+關(guān)注
關(guān)注
30文章
4779瀏覽量
68525
原文標(biāo)題:PLC中常用數(shù)制及各進制的轉(zhuǎn)換方法,不會還有電氣人不會吧?!
文章出處:【微信號:數(shù)控狂人,微信公眾號:數(shù)控狂人】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論