Delphi 系統[13]關鍵字和保留字 and、or、not、xor、shl、shr、div、mod
阿新 • • 發佈:2021-08-11
Delphi 系統[13]關鍵字和保留字 and、or、not、xor、shl、shr、div、mod
1、定義:
- and(邏輯與或按位與)
- or(邏輯或或按位或)
- not(邏輯非或按位否) //Not用於取反, 它否定了原先的結果
- xor(邏輯異或 或 按位異或),只要xor兩邊的布林值不相同(相異),結果就為True,否則就為False。只要xor兩邊的位狀態不同(0和1不同),結果就為1,否則就為0。
- shl(位左移) //SHL表示向左移位, 左移的位數即乘以2的冪數
- shr(位右移) //SHR表示向右移位, 右移的位數即除以2的冪數
- div(整除) //Div用於求兩數之整數商.用於Div運算的兩個數值必須均為整型, 其運算結果也為整型.
- mod(求餘數) //Mod用於求兩數之整數模, 即餘數.用於Mod運算的兩個數值必須均為整型, 其運算結果也為整型.
2、關於xor的特別說明,如圖:
a | b | a⊕b |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
3、示例:
{ 邏輯與 and } procedure TForm1.Button1Click(Sender: TObject); var A, B: Integer; begin A := 1; B := -1; if (A > 0) and (B > 0) then Caption := 'True' else Caption := 'False'; { 結果: False } end; {邏輯或 or } procedure TForm1.Button1Click(Sender: TObject); var A, B: Integer; begin A := 1; B := -1; if (A > 0) or (B > 0) then Caption := 'True' { 結果 True } else Caption := 'False'; end; {邏輯非 not } procedure TForm1.Button1Click(Sender: TObject); var A, B: Integer; begin A := 1; B := -1; if not A > B then Caption := 'True' else Caption := 'False'; { 結果 False } end; { 邏輯異或 xor} procedure TForm1.Button1Click(Sender: TObject); var A, B: Integer; begin A := 1; B := -1; if (A > 0) xor (B > 0) then Caption := 'True' { xor 兩邊的布林值不同,結果 True } else Caption := 'False'; end; {按位與 and } procedure TForm1.Button1Click(Sender: TObject); var A, B, C: Integer; begin A := 360; B := 120; C := A and B; Caption := IntToStr(C); { 結果:104 } end; {按位或 or} procedure TForm1.Button1Click(Sender: TObject); var A, B, C: Integer; begin A := 360; B := 120; C := A or B; Caption := IntToStr(C); { 結果:376 } end; {按位否 not } procedure TForm1.Button1Click(Sender: TObject); var A, C: Integer; begin A := 360; C := not A; Caption := IntToStr(C); { 結果:-361 } end; { 按位異或 xor} procedure TForm1.Button1Click(Sender: TObject); var A, B, C: Integer; begin A := 360; B := 120; C := A xor B; Caption := IntToStr(C); { 結果:272 } end; { 位左移 shl} procedure TForm1.Button1Click(Sender: TObject); var A, C: Integer; begin A := 360; C := A shl 1; { 相當於 A 乘以 2 的 1 次方 } Caption := IntToStr(C); { 結果:720 } end; { 位右移 shr} procedure TForm1.Button1Click(Sender: TObject); var A, C: Integer; begin A := 360; C := A shr 1; { 相當於 A 除以 2 的 1 次方 } Caption := IntToStr(C); { 結果:180 } end; { 整除 div } procedure TForm1.Button1Click(Sender: TObject); var A, B, C: Integer; begin A := 36; B := 5; C := A div B; Caption := IntToStr(C); {7.2,實際輸出:7 } end; { 求餘數 mod} procedure TForm1.Button1Click(Sender: TObject); var A, B, C: Integer; begin A := 36; B := 5; C := A mod B; Caption := IntToStr(C); { 結果:1 } end;
建立時間:2021.08.11 更新時間:
部落格園 滔Roy https://www.cnblogs.com/guorongtao 希望內容對你所有幫助,謝謝!