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、示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
{ 逻辑与 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  更新时间:

 

posted on   滔Roy  阅读(1327)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报

导航

点击右上角即可分享
微信分享提示