我开始觉得我疯了。我有最新补丁的Delphi 10.4.2。我无法使此布尔值工作
procedure TForm1.Button1Click(Sender: TObject);
var j,k, m: integer;
begin
j := 1; m := 14;
k := j And m;
end;
我很高兴被证明是错的,但在我的书中,1逻辑和14应该导致1,但它报告为0。
在此上下文中,您没有将And
用作布尔运算符,因为参数不是布尔值。
相反,它被用作按位运算符。
1是二进制的1或00000001。
14是$0e,或者二进制的00001110。
当你做一个$0e和$1的比特and
时,你会得到0——这是正确的。
And
在这种情况下是一个逐位运算符。
14是二进制的1110。
1是二进制的0001。
1110 & 0001 = 0