js 負數轉換正 PLC中常用數制及如何轉換

2021-10-14 06:32:13 字數 3298 閱讀 2988

數制也稱計數制,是用一組固定的符號和統一的規則來表示數值的方法。任何乙個數制都包含兩個基本要素:基數和位權。

基數:數制所使用數碼的個數。例如,二進位制的基數為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中常用進製及相互轉換方法,意在讓初學者理解進製含義及轉換規律。真正使用時可利用計算機提供的程式設計師型計算器輕鬆運算出來。

js 負數轉換正 js 負數轉換成正數的方法

前端js指令碼中其數字型別的變數也可以進行加減乘除的數 算,而這篇文章飛鳥慕魚部落格就來說一說,js 中如何將乙個負數轉換成正數,也就是取負數絕對值的方法。js中將負數轉換成正數 取絕對值 一般用到兩個方法 js abs 方法負數轉成正數 js取絕對值 的方法 abs 方法返回數的絕對值。語法 ma...

js中常用日期時間轉換

常用日期時間處理外掛程式 1.timeago.js處理幾分鐘之前 2.day.js 3.moment.js 注意 1.此處的標準時間格式為 2018 03 23 13 35 47 2.此處的毫秒為 js中gettime 3.時間戳是指格林威治時間1970年01月01日00時00分00秒 北京時間19...

Js 中常用方法

一 獲取唯一值 2014 12 23 1 function newguid 7return guid 8 view code bttup click function beforesend function complete function success function data,status...