Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^2: bitwise string operator

by romano (Initiate)
on Jun 13, 2013 at 19:49 UTC ( #1038833=note: print w/ replies, xml ) Need Help??


in reply to Re: bitwise string operator
in thread bitwise string operator

Thanks kenneethk

It took me a while to figure it out. I am putting your response in more explicit terms for neophytes like myself.

$Str1 = "AAAACCCCGGGGTTTT"; $Str2 = "ACGTACGTACGTACGT"; $cmp = $Str1^$Str2; $cmp |= '0' x length($cmp); print "$Str1\n"; print "$Str2\n"; print "$cmp\n";
**OUTPUT** AAAACCCCGGGGTTTT ACGTACGTACGTACGT 0265204764035730
# What is ‘|=’ doing? This is bitwise ‘or’. Does ‘or’ on left side and right side (right side value is ‘0’ or 00110000). Puts result of ‘or’ in left side. Originally, the value in $cmp for “A” ^ “G” was 00000110 (= 6) – this is ‘Acknowledgement’ – this is not a printable character.

By doing the ‘or’ with “0” (00110000 = 48) you convert ‘6’ to ‘6’ + ‘48’ = ‘54’ – this is the value for the character 6. So, $cmp looked empty because all of the values are for non-printable characters.

A = 01000001
G = 01000111
^ 00000110 = 6 ‘Acknowledgement’

left 00000110
‘0’ 00110000
| (or) 00110110 = 54 ‘character 6’

******************

A = 01000001
T = 01010100
^ 00010101 = 21 ‘Negative Acknowledgement’

left 00010101
‘0’ 00110000
|(or) 00110101 = 53 ‘character 5’

Thanks again for your help,

romano (aka KennB)


Comment on Re^2: bitwise string operator
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1038833]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2015-07-05 14:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (67 votes), past polls