我无法在最新的Delphi上进行布尔运算



我开始觉得我疯了。我有最新补丁的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

最新更新