1. 程式人生 > 其它 >Delphi 系統[13]關鍵字和保留字 and、or、not、xor、shl、shr、div、mod

Delphi 系統[13]關鍵字和保留字 and、or、not、xor、shl、shr、div、mod

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 希望內容對你所有幫助,謝謝!