Delphi中的位运算怎么用?(50分)

  • 主题发起人 主题发起人 studying
  • 开始时间 开始时间
S

studying

Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现这样的目的:字符串s1和s2中存储0和1的序列,按位进行或运算之后,输出新的0,1
字符串.
var
s1,s2,s3:string;
int1,int2,int3:integer;
begin
s1:='001101';
s2:='100001';
int1:=strtoint(s1);
int2:=strtoint(s2);
int3:=int1 or int2;
s3:=inttostr(int3);
end;
运行结果是100077,而不是我想要的101101.请各位大虾指教!
 
用法不对,你那1101是十进制,非二进制
 
int1,int2都是十进制,or是按照二进制算的,当然不对。
 
Delphi是这么算的:

001101---dec2bin---->00000010001001101
OR =11000011011101101---bin2dec--->100077
100001---dec2bin---->11000011010100001


所以首先要把你的字符串改为相对应得十进制
1101 --->13
100001-->33
(这一步骤很简单,就是每位乘以权值后相加,
1101----->1*2^3+1*2^2+0*2^1+1*2^0=13 )
然后再Or, 就对了
 
多人接受答案了。
 
按位来,然后再合并成字符串就行了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
911
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部