導航:首頁 > 程序命令 > 運算命令

運算命令

發布時間:2022-05-04 09:57:54

『壹』 三菱plc浮點數加減乘除指令

浮點數的加減乘除指令:

浮點數四則運算指令和整點數對應指令的運算過程大同小異,不同點在於,前者是小數,後者是整數。運算過程雖然基本相同,但指令的運用還是有所區別的,接下來我們重點看一下指令運用的區別。

數的四則運算指令只能用於32位,不能用於16位。這4個指令都有2個源操作數(S1·)、(S2·)和1個目的操作數(D·),且適用軟元件只有常數K、H和數據寄存器D。

它們的梯形圖形式如下圖所示,因為都是32位的錯作數,所以在運用指令時助記符前面要加上字母「D」。

從梯形圖可以看到,不管是加減還是乘除,不管是源址還是終址,它們都32位,這和我們在上篇文章所分享的整數四則運算指令有一定的差別,例如整數的32位乘法指令,目的操作數有4個,但浮點數的是2個。

表示方式和整點數完全不一樣,這在上上一篇文章就已經有說明,所以在此不再贅述,大家不了解的可以回看以往的文章。另外,浮點數的四則運算指令不會影響到3個標志位M8020、M8021、M8022。

和整數運算指令一樣,,PLC每掃描一個周期,這些指令就執行一次,此時,重復執行運算可能不是我們需要的,所以應該選擇脈沖執行型指令或邊沿觸發型驅動條件。

總結:

總的來說,浮點數的四則運算指令和整點數差不多,需要用的時候直接用就是。我們接下來繼續看2個與浮點數相關的其他指令。

『貳』 怎麼用Excel來編一個運算宏命令

Function
s(d1,
d2,
R)
s
=
((d1
-
d2)
/
d2
+
2)
*
((d1
-
d2)
/
2)
/
(2
*
R)
End
Function
__________________________________
把上面的代碼復制到模塊里,然後在EXCEL中,輸入=S(D的值,d的值,R的值)
就可得出你要的結是S的值!

『叄』 「運算」命令的計算方法與「應用圖像」命令極為相似,但是有哪些地方不同

一、應用圖像命令可以使用圖像的復合通道做運算,而運算命令只能使用圖像的單一通道。
二、應用圖像的運算結果會被加到圖像的圖層上,而運算命令的結果存儲為一個新的通道或建立一個全新的文件。

『肆』 關於matlab的邏輯運算命令

&&和||被稱為&和|的short circuit形式,

A&B
(1)首先判斷A的邏輯值,然後判斷B的值,然後進行邏輯與的計算。
(2)A和B可以為矩陣(e.g. A=[1 0],B=[0 0])。


A&&B
(1)首先判斷A的邏輯值,如果A的值為假,就可以判斷整個表達式的值為假,就不需要再判斷B的值。
(2)A和B不能是矩陣,只能是標量。


"|"與「||」同理,即:

AIB
(1)首先判斷A的邏輯值,然後判斷B的值,然後進行邏輯或的計算。
(2)A和B可以為矩陣(e.g. A=[1 0],B=[0 0])。


AIIB
(1)首先判斷A的邏輯值,如果A的值為真,就可以判斷整個表達式的值為真,就不需要再判斷B的值。
(2)A和B不能是矩陣,只能是標量。

實例:

拓展說明:

除了|和&兩個操作符外,還有一種邏輯操作符:非

非(或邏輯非)是一元操作符,即~A:當A是非零時結果為「0」;當A為「0」時,結果為「1」。

『伍』 邏輯運算指令包括什麼

邏輯運算是對無符號數進行處理的邏輯處理,主要包括邏輯與邏輯或邏輯液化和取反等運算指令。按照操作數的長度可分為自己字和雙字邏輯運算。

『陸』 請問有誰知道excel所有計算公式的命令

1、 查找重復內容公式:=IF(COUNTIF(A:A,A2)>1,"重復","")。
2、 用出生年月來計算年齡公式:=TRUNC((DAYS360(H6,"2009/8/30",FALSE))/360,0)。
3、從輸入的18位身份證號的出生年月計算公式:=CONCATENATE(MID(E2,7,4),"/",MID(E2,11,2),"/",MID(E2,13,2))。
4、 從輸入的身份證號碼內讓系統自動提取性別,可以輸入以下公式:
=IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,"男","女"),IF(MOD(MID(C2,17,1),2)=1,"男","女"))公式內的「C2」代表的是輸入身份證號碼的單元格。
1、求和: =SUM(K2:K56) ——對K2到K56這一區域進行求和;
2、平均數: =AVERAGE(K2:K56) ——對K2 K56這一區域求平均數;
3、排名: =RANK(K2,K$2:K$56) ——對55名學生的成績進行排名;
4、等級: =IF(K2>=85,"優",IF(K2>=74,"良",IF(K2>=60,"及格","不及格")))
5、學期總評: =K2*0.3+M2*0.3+N2*0.4 ——假設K列、M列和N列分別存放著學生的「平時總評」、「期中」、「期末」三項成績;
6、最高分: =MAX(K2:K56) ——求K2到K56區域(55名學生)的最高分;
7、最低分: =MIN(K2:K56) ——求K2到K56區域(55名學生)的最低分;
8、分數段人數統計:
(1) =COUNTIF(K2:K56,"100") ——求K2到K56區域100分的人數;假設把結果存放於K57單元格;
(2) =COUNTIF(K2:K56,">=95")-K57 ——求K2到K56區域95~99.5分的人數;假設把結果存放於K58單元格;
(3)=COUNTIF(K2:K56,">=90")-SUM(K57:K58) ——求K2到K56區域90~94.5分的人數;假設把結果存放於K59單元格;
(4)=COUNTIF(K2:K56,">=85")-SUM(K57:K59) ——求K2到K56區域85~89.5分的人數;假設把結果存放於K60單元格;
(5)=COUNTIF(K2:K56,">=70")-SUM(K57:K60) ——求K2到K56區域70~84.5分的人數;假設把結果存放於K61單元格;
(6)=COUNTIF(K2:K56,">=60")-SUM(K57:K61) ——求K2到K56區域60~69.5分的人數;假設把結果存放於K62單元格;
(7) =COUNTIF(K2:K56,"<60") ——求K2到K56區域60分以下的人數;假設把結果存放於K63單元格;
說明:COUNTIF函數也可計算某一區域男、女生人數。
如:=COUNTIF(C2:C351,"男") ——求C2到C351區域(共350人)男性人數;
9、優秀率: =SUM(K57:K60)/55*100
10、及格率: =SUM(K57:K62)/55*100
11、標准差: =STDEV(K2:K56) ——求K2到K56區域(55人)的成績波動情況(數值越小,說明該班學生間的成績差異較小,反之,說明該班存在兩極分化);
12、條件求和: =SUMIF(B2:B56,"男",K2:K56) ——假設B列存放學生的性別,K列存放學生的分數,則此函數返回的結果表示求該班男生的成績之和;
13、多條件求和: {=SUM(IF(C3:C322="男",IF(G3:G322=1,1,0)))} ——假設C列(C3:C322區域)存放學生的性別,G列(G3:G322區域)存放學生所在班級代碼(1、2、3、4、5),則此函數返回的結果表示求一班的男生人數;這是一個數組函數,輸完後要按Ctrl+Shift+Enter組合鍵(產生「{……}」)。「{}」不能手工輸入,只能用組合鍵產生。
14、根據出生日期自動計算周歲:=TRUNC((DAYS360(D3,NOW( )))/360,0)
———假設D列存放學生的出生日期,E列輸入該函數後則產生該生的周歲。
15、在Word中三個小竅門:
①連續輸入三個「~」可得一條波浪線。
②連續輸入三個「-」可得一條直線。
連續輸入三個「=」可得一條雙直線。
一、excel中當某一單元格符合特定條件,如何在另一單元格顯示特定的顏色比如:
A1〉1時,C1顯示紅色
0<A1<1時,C1顯示綠色
A1<0時,C1顯示黃色
方法如下:
1、單元擊C1單元格,點「格式」>「條件格式」,條件1設為:
公式 =A1=1
2、點「格式」->「字體」->「顏色」,點擊紅色後點「確定」。
條件2設為:
公式 =AND(A1>0,A1<1)
3、點「格式」->「字體」->「顏色」,點擊綠色後點「確定」。
條件3設為:
公式 =A1<0
點「格式」->「字體」->「顏色」,點擊黃色後點「確定」。
4、三個條件設定好後,點「確定」即出。
二、EXCEL中如何控制每列數據的長度並避免重復錄入
1、用數據有效性定義數據長度。
用滑鼠選定你要輸入的數據范圍,點"數據"->"有效性"->"設置","有效性條件"設成"允許""文本長度""等於""5"(具體條件可根據你的需要改變)。
還可以定義一些提示信息、出錯警告信息和是否打開中文輸入法等,定義好後點"確定"。
2、用條件格式避免重復。
選定A列,點"格式"->"條件格式",將條件設成「公式=COUNTIF($A:$A,$A1)>1」,點"格式"->"字體"->"顏色",選定紅色後點兩次"確定"。
這樣設定好後你輸入數據如果長度不對會有提示,如果數據重復字體將會變成紅色。
三、在EXCEL中如何把B列與A列不同之處標識出來?
(一)、如果是要求A、B兩列的同一行數據相比較:
假定第一行為表頭,單擊A2單元格,點「格式」->「條件格式」,將條件設為:
「單元格數值」 「不等於」=B2
點「格式」->「字體」->「顏色」,選中紅色,點兩次「確定」。
用格式刷將A2單元格的條件格式向下復制。
B列可參照此方法設置。
(二)、如果是A列與B列整體比較(即相同數據不在同一行):
假定第一行為表頭,單擊A2單元格,點「格式」->「條件格式」,將條件設為:
「公式」=COUNTIF($B:$B,$A2)=0
點「格式」->「字體」->「顏色」,選中紅色,點兩次「確定」。
用格式刷將A2單元格的條件格式向下復制。
B列可參照此方法設置。
按以上方法設置後,AB列均有的數據不著色,A列有B列無或者B列有A列無的數據標記為紅色字體。
四、EXCEL中怎樣批量地處理按行排序
假定有大量的數據(數值),需要將每一行按從大到小排序,如何操作?
由於按行排序與按列排序都是只能有一個主關鍵字,主關鍵字相同時才能按次關鍵字排序。所以,這一問題不能用排序來解決。解決方法如下:
1、假定你的數據在A至E列,請在F1單元格輸入公式:
=LARGE($A1:$E1,COLUMN(A1))
用填充柄將公式向右向下復制到相應范圍。
你原有數據將按行從大到小排序出現在F至J列。如有需要可用「選擇性粘貼/數值」復制到其他地方。
註:第1步的公式可根據你的實際情況(數據范圍)作相應的修改。如果要從小到大排序,公式改為:=SMALL($A1:$E1,COLUMN(A1))
五、巧用函數組合進行多條件的計數統計
例:第一行為表頭,A列是「姓名」,B列是「班級」,C列是「語文成績」,D列是「錄取結果」,現在要統計「班級」為「二」,「語文成績」大於等於104,「錄取結果」為「重本」的人數。統計結果存放在本工作表的其他列。
公式如下:
=SUM(IF((B2:B9999="二")*(C2:C9999>=104)*(D2:D9999="重本"),1,0))
輸入完公式後按Ctrl+Shift+Enter鍵,讓它自動加上數組公式符號"{}"。
六、如何判斷單元格里是否包含指定文本?
假定對A1單元格進行判斷有無"指定文本",以下任一公式均可:
=IF(COUNTIF(A1,"*"&"指定文本"&"*")=1,"有","無")
=IF(ISERROR(FIND("指定文本",A1,1)),"無","有")
求某一區域內不重復的數據個數
例如求A1:A100范圍內不重復數據的個數,某個數重復多次出現只算一個。有兩種計算方法:
一是利用數組公式:
=SUM(1/COUNTIF(A1:A100,A1:A100))
輸入完公式後按Ctrl+Shift+Enter鍵,讓它自動加上數組公式符號"{}"。
二是利用乘積求和函數:
=SUMPRODUCT(1/COUNTIF(A1:A100,A1:A100))
七、一個工作薄中有許多工作表如何快速整理出一個目錄工作表
1、用宏3.0取出各工作表的名稱,方法:
Ctrl+F3出現自定義名稱對話框,取名為X,在「引用位置」框中輸入:
=MID(GET.WORKBOOK(1),FIND("]",GET.WORKBOOK(1))+1,100)
確定
2、用HYPERLINK函數批量插入連接,方法:
在目錄工作表(一般為第一個sheet)的A2單元格輸入公式:
=HYPERLINK("#'"&INDEX(X,ROW())&"'!A1",INDEX(X,ROW()))
將公式向下填充,直到出錯為止,目錄就生成了

『柒』 命令運算符怎麼使用

cd C:\documents and settings\administrator
cd E:\Software
cd空格加上路徑就進入文件夾
cd..為返回上一級文件夾
cd E:\Software\mathtype6.7.txt

打開該路徑下的文件夾
等等,還有輸入相應的命令查看系統信息,導入文件等。

『捌』 運算指令哪裡能用

可以解決PLC中出現的各種數學運算問題
加法運算,減法運算,乘法運算,除法運算

『玖』 編程中有那些邏輯運算指令

1.算術運算符
Java的算術運算符分為一元運算符和二元運算符。一元運算符只有一個操作數;二元運算符有兩個操作數,運算符位於兩個操作數之間。算術運算符的操作數必須是數值類型。

(1)一元運算符:
一元運算符有:正(+)、負(-)、加1(++)和減1(--)4個。
加1、減1運算符只允許用於數值類型的變數,不允許用於表達式中。加1、減1運算符既可放在變數之前(如++i),也可放在變數之後(如i++),兩者的差別是:如果放在變數之前(如++i),則變數值先加1或減1,然後進行其他相應的操作(主要是賦值操作);如果放在變數之後(如i++),則先進行其他相應的操作,然後再進行變數值加1或減1。
例如:
int i=6,j,k,m,n;
j = +i; //取原值,即j=6
k = -i; //取負值,即k=-6
m = i++; //先m=i,再i=i+1,即m=6,i=7
m = ++i; //先i=i+1,再m=i,即i=7,m=7
n = j--; //先n=j,再j=j-1,即n=6,j=5
n = --j; //先j=j-1,再n=j,即j=5,n=5
在書寫時還要注意的是:一元運算符與其前後的操作數之間不允許有空格,否則編譯時會出錯。

(2)二元運算符
二元運算符有:加(+)、減(-)、乘(*)、除(/)、取余(%)。其中+、-、*、/完成加、減、乘、除四則運算,%是求兩個操作數相除後的余數。

%求余操作舉例:
a % b = a - (a / b) * b
取余運算符既可用於兩個操作數都是整數的情況,也可用於兩個操作數都是浮點數(或一個操作數是浮點數)的情況。當兩個操作數都是浮點數時,例如7.6 % 2.9時,計算結果為:7.6 - 2 * 2.9 = 1.8。
當兩個操作數都是int類型數時,a%b的計算公式為:
a % b = a - (int)(a / b) * b
當兩個操作數都是long類型(或其他整數類型)數時,a%b的計算公式可以類推。

當參加二元運算的兩個操作數的數據類型不同時,所得結果的數據類型與精度較高(或位數更長)的那種數據類型一致。

例如:
7 / 3 //整除,運算結果為2
7.0 / 3 //除法,運算結果為2.33333,即結果與精度較高的類型一致
7 % 3 //取余,運算結果為1
7.0 % 3 //取余,運算結果為1.0
-7 % 3 //取余,運算結果為-1,即運算結果的符號與左操作數相同
7 % -3 //取余,運算結果為1,即運算結果的符號與左操作數相同

2.關系運算符
關系運算符用於比較兩個數值之間的大小,其運算結果為一個邏輯類型的數值。關系運算符有六個:等於(==)、不等於(!=)、大於(>)、大於等於(>=)、小於(<)、小於等於(<=)。

例如:
9 <= 8 //運算結果為false
9.9 >= 8.8 //運算結果為true
'A' < 'a' //運算結果為true,因字元'A'的Unicode編碼值小於字元'a'的
要說明的是,對於大於等於(或小於等於)關系運算符來說,只有大於和等於兩種關系運算都不成立時其結果值才為false,只要有一種(大於或等於)關系運算成立其結果值即為true。例如,對於9 <= 8,9既不小於8也不等於8,所以9 <= 8 的運算結果為false。對於9 >= 9,因9等於9,所以9 >= 9的運算結果為true。

3.邏輯運算符
邏輯運算符要求操作數的數據類型為邏輯型,其運算結果也是邏輯型值。邏輯運算符有:邏輯與(&&)、邏輯或(||)、邏輯非(!)、邏輯異或(^)、邏輯與(&)、邏輯或(|)。
真值表是表示邏輯運算功能的一種直觀方法,其具體方法是把邏輯運算的所有可能值用表格形式全部羅列出來。Java語言邏輯運算符的真值表如下:
邏輯運算符的真值表
A B A&&B A||B !A A^B A&B A|B
false false false false true false false false
true false false true false true false true
false true false true true true false true
true true true true false false true true

前兩列是參與邏輯運算的兩個邏輯變數,共有4種可能,所以表2.5共有4行。後6列分別是6個邏輯運算符在邏輯變數A和邏輯變數B取不同數值時的運算結果值。
要說明的是,兩種邏輯與(&&和&)的運算規則基本相同,兩種邏輯或(||和|)的運算規則也基本相同。其區別是:&和|運算是把邏輯表達式全部計算完,而&&和||運算具有短路計算功能。所謂短路計算,是指系統從左至右進行邏輯表達式的計算,一旦出現計算結果已經確定的情況,則計算過程即被終止。對於&&運算來說,只要運算符左端的值為false,則因無論運算符右端的值為true或為false,其最終結果都為false。所以,系統一旦判斷出&&運算符左端的值為false,則系統將終止其後的計算過程;對於 || 運算來說,只要運算符左端的值為true,則因無論運算符右端的值為true或為false,其最終結果都為true。所以,系統一旦判斷出|| 運算符左端的值為true,則系統將終止其後的計算過程。

例如,有如下邏輯表達式:
(i>=1) && (i<=100)
此時,若i等於0,則系統判斷出i>=1的計算結果為false後,系統馬上得出該邏輯表達式的最終計算結果為false,因此,系統不繼續判斷i<=100的值。短路計算功能可以提高程序的運行速度。
作者建議讀者:在程序設計時使用&&和||運算符,不使用&和|運算符。

用邏輯與(&&)、邏輯或(||)和邏輯非(!)可以組合出各種可能的邏輯表達式。邏輯表達式主要用在 if、while等語句的條件組合上。
例如:
int i = 1;
while(i>=1) && (i<=100) i++; //循環過程
上述程序段的循環過程將i++語句循環執行100次。

4.位運算符
位運算是以二進制位為單位進行的運算,其操作數和運算結果都是整型值。
位運算符共有7個,分別是:位與(&)、位或(|)、位非(~)、位異或(^)、右移(>>)、左移(<<)、0填充的右移(>>>)。
位運算的位與(&)、位或(|)、位非(~)、位異或(^)與邏輯運算的相應操作的真值表完全相同,其差別只是位運算操作的操作數和運算結果都是二進制整數,而邏輯運算相應操作的操作數和運算結果都是邏輯值。

位運算示例
運算符 名稱 示例 說明
& 位與 x&y 把x和y按位求與
| 位或 x|y 把x和y按位求或
~ 位非 ~x 把x按位求非
^ 位異或 x^y 把x和y按位求異或
>> 右移 x>>y 把x的各位右移y位
<< 左移 x<<y 把x的各位左移y位
>>> 右移 x>>>y 把x的各位右移y位,左邊填0

舉例說明:
(1)有如下程序段:
int x = 64; //x等於二進制數的01000000
int y = 70; //y等於二進制數的01000110
int z = x&y //z等於二進制數的01000000
即運算結果為z等於二進制數01000000。位或、位非、位異或的運算方法類同。
(2)右移是將一個二進制數按指定移動的位數向右移位,移掉的被丟棄,左邊移進的部分或者補0(當該數為正時),或者補1(當該數為負時)。這是因為整數在機器內部採用補碼表示法,正數的符號位為0,負數的符號位為1。例如,對於如下程序段:
int x = 70; //x等於二進制數的01000110
int y = 2;
int z = x>>y //z等於二進制數的00010001
即運算結果為z等於二進制數00010001,即z等於十進制數17。
對於如下程序段:
int x = -70; //x等於二進制數的11000110
int y = 2;
int z = x>>y //z等於二進制數的11101110
即運算結果為z等於二進制數11101110,即z等於十進制數-18。要透徹理解右移和左移操作,讀者需要掌握整數機器數的補碼表示法。
(3)0填充的右移(>>>)是不論被移動數是正數還是負數,左邊移進的部分一律補0。

5.其他運算符

(1)賦值運算符與其他運算符的簡捷使用方式
賦值運算符可以與二元算術運算符、邏輯運算符和位運算符組合成簡捷運算符,從而可以簡化一些常用表達式的書寫。
賦值運算符與其他運算符的簡捷使用方式
運算符 用法 等價於 說明
+= s+=i s=s+i s,i是數值型
-= s-=i s=s-i s,i是數值型
*= s*=i s=s*i s,i是數值型
/= s/=i s=s/i s,i是數值型
%= s%=i s=s%i s,i是數值型
&= a&=b a=a&b a,b是邏輯型或整型
|= a|=b a=a|b a,b是邏輯型或整型
^= A^=b a=a^b a,b是邏輯型或整型
<<= s<<=i s=s<<i s,i是整型
>>= s>>=i s=s>>i s,i是整型
>>>= s>>>=i s=s>>>i s,i是整型

(2)方括弧[]和圓括弧()運算符
方括弧[]是數組運算符,方括弧[]中的數值是數組的下標,整個表達式就代表數組中該下標所在位置的元素值。
圓括弧()運算符用於改變表達式中運算符的優先順序。

(3)字元串加(+)運算符
當操作數是字元串時,加(+)運算符用來合並兩個字元串;當加(+)運算符的一邊是字元串,另一邊是數值時,機器將自動將數值轉換為字元串,這種情況在輸出語句中很常見。如對於如下程序段:
int max = 100;
System.out.println("max = "+max);
計算機屏幕的輸出結果為:max = 100,即此時是把變數max中的整數值100轉換成字元串100輸出的。

(4)條件運算符(?:)
條件運算符(?:)的語法形式為:
<表達式1> ?<表達式2> : <表達式3>
條件運算符的運算方法是:先計算<表達式1>的值,當<表達式1>的值為true時,則將<表達式2>的值作為整個表達式的值;當<表達式1>的值為false時,則將<表達式3>的值作為整個表達式的值。如:
int a=1,b=2,max;
max = a>b?a:b; //max等於2

(5)強制類型轉換符
強制類型轉換符能將一個表達式的類型強制轉換為某一指定數據類型,其語法形式為:
(<類型>)<表達式>

(6)對象運算符instanceof
對象運算符instanceof用來測試一個指定對象是否是指定類(或它的子類)的實例,若是則返回true,否則返回false。

(7)點運算符
點運算符「.」的功能有兩個:一是引用類中成員,二是指示包的層次等級。

6.運算符的優先順序
以下按優先順序從高到低的次序列出Java語言中的所有運算符,表中結合性一列中的「左?右」表示其運算次序為從左向右,「右?左」表示其運算次序為從右向左。

優先順序 運算符 結合性
1 . [] () ; ,
2 ++ ―― += ! ~ +(一元) -(一元) 右?左
3 * / % 左?右
4 +(二元) -(二元) 左?右
5 << >> >>> 左?右
6 < > <= >= instanceof 左?右
7 = = != 左?右
8 & 左?右
9 ^ 左?右
10 | 左?右
11 && 左?右
12 || 左?右
13 ?: 右?左
14 = *= /= %= += -= <<= >>= >>>= &= ^= |= 右?左

『拾』 運算指令包括哪些

1.算術運算符 Java的算術運算符分為一元運算符和二元運算符。一元運算符只有一個操作數;二元運算符有兩個操作數,運算符位於兩個操作數之間。算術運算符的操作數必須是數值類型。 (1)一元運算符: 一元運算符有:正(+)、負(-)、加1(++)和減1(--)4個。 加1、減1運算符只允許用於數值類型的變數,不允許用於表達式中。加1、減1運算符既可放在變數之前(如++i),也可放在變數之後(如i++),兩者的差別是:如果放在變數之前(如++i),則變數值先加1或減1,然後進行其他相應的操作(主要是賦值操作);如果放在變數之後(如i++),則先進行其他相應的操作,然後再進行變數值加1或減1。 例如: int i=6,j,k,m,n; j = +i; //取原值,即j=6 k = -i; //取負值,即k=-6 m = i++; //先m=i,再i=i+1,即m=6,i=7 m = ++i; //先i=i+1,再m=i,即i=7,m=7 n = j--; //先n=j,再j=j-1,即n=6,j=5 n = --j; //先j=j-1,再n=j,即j=5,n=5 在書寫時還要注意的是:一元運算符與其前後的操作數之間不允許有空格,否則編譯時會出錯。 (2)二元運算符 二元運算符有:加(+)、減(-)、乘(*)、除(/)、取余(%)。其中+、-、*、/完成加、減、乘、除四則運算,%是求兩個操作數相除後的余數。 %求余操作舉例: a % b = a - (a / b) * b 取余運算符既可用於兩個操作數都是整數的情況,也可用於兩個操作數都是浮點數(或一個操作數是浮點數)的情況。當兩個操作數都是浮點數時,例如7.6 % 2.9時,計算結果為:7.6 - 2 * 2.9 = 1.8。 當兩個操作數都是int類型數時,a%b的計算公式為: a % b = a - (int)(a / b) * b 當兩個操作數都是long類型(或其他整數類型)數時,a%b的計算公式可以類推。 當參加二元運算的兩個操作數的數據類型不同時,所得結果的數據類型與精度較高(或位數更長)的那種數據類型一致。 例如: 7 / 3 //整除,運算結果為2 7.0 / 3 //除法,運算結果為2.33333,即結果與精度較高的類型一致 7 % 3 //取余,運算結果為1 7.0 % 3 //取余,運算結果為1.0 -7 % 3 //取余,運算結果為-1,即運算結果的符號與左操作數相同 7 % -3 //取余,運算結果為1,即運算結果的符號與左操作數相同 2.關系運算符 關系運算符用於比較兩個數值之間的大小,其運算結果為一個邏輯類型的數值。關系運算符有六個:等於(==)、不等於(!=)、大於(>)、大於等於(>=)、小於(<)、小於等於(<=)。 例如: 9 <= 8 //運算結果為false 9.9 >= 8.8 //運算結果為true 'A' < 'a' //運算結果為true,因字元'A'的Unicode編碼值小於字元'a'的 要說明的是,對於大於等於(或小於等於)關系運算符來說,只有大於和等於兩種關系運算都不成立時其結果值才為false,只要有一種(大於或等於)關系運算成立其結果值即為true。例如,對於9 <= 8,9既不小於8也不等於8,所以9 <= 8 的運算結果為false。對於9 >= 9,因9等於9,所以9 >= 9的運算結果為true。 3.邏輯運算符 邏輯運算符要求操作數的數據類型為邏輯型,其運算結果也是邏輯型值。邏輯運算符有:邏輯與(&&)、邏輯或(||)、邏輯非(!)、邏輯異或(^)、邏輯與(&)、邏輯或(|)。 真值表是表示邏輯運算功能的一種直觀方法,其具體方法是把邏輯運算的所有可能值用表格形式全部羅列出來。Java語言邏輯運算符的真值表如下: 邏輯運算符的真值表 A B A&&B A||B !A A^B A&B A|B false false false false true false false false true false false true false true false true false true false true true true false true true true true true false false true true 前兩列是參與邏輯運算的兩個邏輯變數,共有4種可能,所以表2.5共有4行。後6列分別是6個邏輯運算符在邏輯變數A和邏輯變數B取不同數值時的運算結果值。 要說明的是,兩種邏輯與(&&和&)的運算規則基本相同,兩種邏輯或(||和|)的運算規則也基本相同。其區別是:&和|運算是把邏輯表達式全部計算完,而&&和||運算具有短路計算功能。所謂短路計算,是指系統從左至右進行邏輯表達式的計算,一旦出現計算結果已經確定的情況,則計算過程即被終止。對於&&運算來說,只要運算符左端的值為false,則因無論運算符右端的值為true或為false,其最終結果都為false。所以,系統一旦判斷出&&運算符左端的值為false,則系統將終止其後的計算過程;對於 || 運算來說,只要運算符左端的值為true,則因無論運算符右端的值為true或為false,其最終結果都為true。所以,系統一旦判斷出|| 運算符左端的值為true,則系統將終止其後的計算過程。 例如,有如下邏輯表達式: (i>=1) && (i<=100) 此時,若i等於0,則系統判斷出i>=1的計算結果為false後,系統馬上得出該邏輯表達式的最終計算結果為false,因此,系統不繼續判斷i<=100的值。短路計算功能可以提高程序的運行速度。 作者建議讀者:在程序設計時使用&&和||運算符,不使用&和|運算符。 用邏輯與(&&)、邏輯或(||)和邏輯非(!)可以組合出各種可能的邏輯表達式。邏輯表達式主要用在 if、while等語句的條件組合上。 例如: int i = 1; while(i>=1) && (i<=100) i++; //循環過程 上述程序段的循環過程將i++語句循環執行100次。 4.位運算符 位運算是以二進制位為單位進行的運算,其操作數和運算結果都是整型值。 位運算符共有7個,分別是:位與(&)、位或(|)、位非(~)、位異或(^)、右移(>>)、左移(<<)、0填充的右移(>>>)。 位運算的位與(&)、位或(|)、位非(~)、位異或(^)與邏輯運算的相應操作的真值表完全相同,其差別只是位運算操作的操作數和運算結果都是二進制整數,而邏輯運算相應操作的操作數和運算結果都是邏輯值。 位運算示例 運算符 名稱 示例 說明 & 位與 x&y 把x和y按位求與 | 位或 x|y 把x和y按位求或 ~ 位非 ~x 把x按位求非 ^ 位異或 x^y 把x和y按位求異或 >> 右移 x>>y 把x的各位右移y位 << 左移 x<<y 把x的各位左移y位 >>> 右移 x>>>y 把x的各位右移y位,左邊填0 舉例說明: (1)有如下程序段: int x = 64; //x等於二進制數的01000000 int y = 70; //y等於二進制數的01000110 int z = x&y //z等於二進制數的01000000 即運算結果為z等於二進制數01000000。位或、位非、位異或的運算方法類同。 (2)右移是將一個二進制數按指定移動的位數向右移位,移掉的被丟棄,左邊移進的部分或者補0(當該數為正時),或者補1(當該數為負時)。這是因為整數在機器內部採用補碼表示法,正數的符號位為0,負數的符號位為1。例如,對於如下程序段: int x = 70; //x等於二進制數的01000110 int y = 2; int z = x>>y //z等於二進制數的00010001 即運算結果為z等於二進制數00010001,即z等於十進制數17。 對於如下程序段: int x = -70; //x等於二進制數的11000110 int y = 2; int z = x>>y //z等於二進制數的11101110 即運算結果為z等於二進制數11101110,即z等於十進制數-18。要透徹理解右移和左移操作,讀者需要掌握整數機器數的補碼表示法。 (3)0填充的右移(>>>)是不論被移動數是正數還是負數,左邊移進的部分一律補0。 5.其他運算符 (1)賦值運算符與其他運算符的簡捷使用方式 賦值運算符可以與二元算術運算符、邏輯運算符和位運算符組合成簡捷運算符,從而可以簡化一些常用表達式的書寫。 賦值運算符與其他運算符的簡捷使用方式 運算符 用法 等價於 說明 += s+=i s=s+i s,i是數值型 -= s-=i s=s-i s,i是數值型 *= s*=i s=s*i s,i是數值型 /= s/=i s=s/i s,i是數值型 %= s%=i s=s%i s,i是數值型 &= a&=b a=a&b a,b是邏輯型或整型 |= a|=b a=a|b a,b是邏輯型或整型 ^= A^=b a=a^b a,b是邏輯型或整型 <<= s<<=i s=s<<i s,i是整型 >>= s>>=i s=s>>i s,i是整型 >>>= s>>>=i s=s>>>i s,i是整型 (2)方括弧[]和圓括弧()運算符 方括弧[]是數組運算符,方括弧[]中的數值是數組的下標,整個表達式就代表數組中該下標所在位置的元素值。 圓括弧()運算符用於改變表達式中運算符的優先順序。 (3)字元串加(+)運算符 當操作數是字元串時,加(+)運算符用來合並兩個字元串;當加(+)運算符的一邊是字元串,另一邊是數值時,機器將自動將數值轉換為字元串,這種情況在輸出語句中很常見。如對於如下程序段: int max = 100; System.out.println("max = "+max); 計算機屏幕的輸出結果為:max = 100,即此時是把變數max中的整數值100轉換成字元串100輸出的。 (4)條件運算符(?:) 條件運算符(?:)的語法形式為: <表達式1> ?<表達式2> : <表達式3> 條件運算符的運算方法是:先計算<表達式1>的值,當<表達式1>的值為true時,則將<表達式2>的值作為整個表達式的值;當<表達式1>的值為false時,則將<表達式3>的值作為整個表達式的值。如: int a=1,b=2,max; max = a>b?a:b; //max等於2 (5)強制類型轉換符 強制類型轉換符能將一個表達式的類型強制轉換為某一指定數據類型,其語法形式為: (<類型>)<表達式> (6)對象運算符instanceof 對象運算符instanceof用來測試一個指定對象是否是指定類(或它的子類)的實例,若是則返回true,否則返回false。 (7)點運算符 點運算符「.」的功能有兩個:一是引用類中成員,二是指示包的層次等級。 6.運算符的優先順序 以下按優先順序從高到低的次序列出Java語言中的所有運算符,表中結合性一列中的「左?右」表示其運算次序為從左向右,「右?左」表示其運算次序為從右向左。 優先順序 運算符 結合性 1 . [] () ; , 2 ++ ―― += ! ~ +(一元) -(一元) 右?左 3 * / % 左?右 4 +(二元) -(二元) 左?右 5 << >> >>> 左?右 6 < > <= >= instanceof 左?右 7 = = != 左?右 8 & 左?右 9 ^ 左?右 10 | 左?右 11 && 左?右 12 || 左?右 13 ?: 右?左 14 = *= /= %= += -= <<= >>= >>>= &= ^= |= 右?左

閱讀全文

與運算命令相關的資料

熱點內容
安卓手機怎麼群發小費才不會被鎖 瀏覽:741
相機文件夾設置 瀏覽:855
centos7php怎麼用 瀏覽:119
查看linux操作系統版本的命令 瀏覽:382
收支預演算法怎麼做 瀏覽:875
模板如何上傳到伺服器 瀏覽:372
如何同步安卓信息到新ipad 瀏覽:364
騰訊雲輕量伺服器流量警告 瀏覽:503
u盤備份linux 瀏覽:120
高壓縮比活塞 瀏覽:92
壓縮彈簧標准件 瀏覽:25
linux統計個數命令 瀏覽:292
cad轉pdf居中 瀏覽:8
編譯型語言處理過程 瀏覽:325
手機創文件夾復制到電腦 瀏覽:984
有什麼直播APP可以看那種 瀏覽:41
程序員叫什麼人 瀏覽:378
python畫地圖等高線 瀏覽:751
epic永劫無間是什麼伺服器 瀏覽:444
網游伺服器下載地址 瀏覽:107