Logical ANDing of two strings of binary numbers

manaila's Avatar, Join Date: Jul 2010
Go4Expert Member
Hi Guys,

Can you please help me with how I can "AND" two strings of binary numbers and put the result in another string, that is I have the following:

string str1 = "1111";
string str2 = "1010";
string str3 = logical AND of str1 and str2;

cheers
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
You have to loop through each character and AND them to create 3rd string.
0
xpi0t0s's Avatar, Join Date: Aug 2004
Mentor
Do you mean logical or bitwise? Logically, both inputs are TRUE so the output would also be TRUE, typically represented as -1, i.e. "1111", but the bitwise AND of 1111 and 1010 is 1010.

If bitwise then to avoid characterset issues you should use logic, i.e.
Code:
str3[i]=(str1[i]=='1' && str2[i]=='1') ? '1' : '0';
as opposed to
Code:
str3[i]=str1[i] & str2[i];
which will work in ASCII where '0' is 0x30 and '1' is 0x31 but the code would not be portable to charactersets where that relationship is not true. Also the first bit is effectively self-documenting; any maintenance programmer would see that code and understand its intent directly without having to work through the obvious "why is this idiot bitwise ANDing characters?".
0
manaila's Avatar, Join Date: Jul 2010
Go4Expert Member
Hi,

Actually, I was trying to say bitwise ANDing. Thank you for your suggestions. They greatly helped me!

cheers
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
The pleasure is all mine.