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 希望内容对你有所帮助,谢谢!