谢谢!

解决方案 »

  1.   

    1、把输入内容转换成整数:
       用BinToHex函数把输入内容转换成16进制
       用StrToInt把16进制转换成整数
       (BinToHex用法记不清了,看帮助)2、按位与:
    z := x and y;3、z转换成二进制:
    edit3.text := IntToBin(z);
      

  2.   

    Object Pascal中应该有这样的函数,就是与操作的函数,我记得c、c++里有||操作符即可实现两个数的与操作,Delphi(其实就是建立在Object Pascal基础上的啊)若有的话,你只要把edit1.text(注意把字符串转变为相应的数据)和edit2.text相与一下输出到edit3.text不就可了。
    还有一笨方法:把edit1.text='101010101'里的字符串放到一个数组里去,然后分别取它的每一个元素再转换成整数,实际不就是0 或1 嘛,edit2.text='111000101'类似,然后把相应位的相与一下不就可以了嘛 。    诸如:a[1]--b[1]
      

  3.   

    //代码是多了点~~
    //但请注意,这是处理无限进制~~
    //form
    http://zswang.51.net/function/zsfunc01.htmconst
      cScaleChar = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';function IntPower(Base, Exponent: Integer): Integer; { 返回Base的Exponent次方 }
    var
      I: Integer;
    begin
      Result := 1;
      for I := 1 to Exponent do
        Result := Result * Base;
    end; { IntPower }function IntToDigit(mNumber: Integer; mScale: Byte;
      mLength: Integer = 0): string;
    { 返回整数的进制表示;mScale指定多少进制;mLength指定长度,长度不足时向前补0 }
    var
      I, J: Integer;
    begin
      Result := '';
      I := mNumber;
      while (I >= mScale) and (mScale > 1) do begin
        J := I mod mScale;
        I := I div mScale;
        Result := cScaleChar[J + 1] + Result;
      end;
      Result := cScaleChar[I + 1] + Result;
      for I := 1 to mLength - Length(Result) do Result := '0' + Result;
    end; { IntToDigit }function DigitToInt(mDigit: string; mScale: Byte): Integer;
    { 返回进制表示转换成整数;mScale指定多少进制 }
    var
      I: Byte;
      L: Integer;
    begin
      Result := 0;
      mDigit := UpperCase(mDigit);
      L := Length(mDigit);
      for I := 1 to L do
        Result := Result + (Pos(mDigit[L - I + 1], cScaleChar) - 1) *
          IntPower(mScale, I - 1);
    end; { DigitToInt }procedure TForm1.Button1Click(Sender: TObject);
    begin
      Edit3.Text := IntToDigit(DigitToInt(Edit1.Text, 2) and DigitToInt(Edit2.Text, 2), 2, 8);
    end;
      

  4.   

    var
    N,X,Y:integer;
    begin
    edit3.text:='';
    //最好在这判断一下Edit1.text和Edit2.text长度是否相等。不相等请在短的前面加0。
    for N:=1 to length(Edit1.text) do
    begin
    X:=StrToInt(copy(edit1.text,n,1));
    Y:=StrToInt(copy(edit2.text,n,1));
    edit3.Text:=edit3.Text+Inttostr(x And y);
    end;
    end;