bit运算应该是这样: 2位表示一个字符 00 A 01 G 10 T 11 C 这样下来一个15个字符的序列一共30位,一个int足矣,必用字符串省很多内存
取各个位 如: $char = $key & 0b000011; $char = $key & 0b001100; $char = $key & 0b110000 ... 取出每个位以后再做判断 $char == 0; $char == 1; $char == 2; $char == 4; 2009/9/23 空格 <[email protected]> > 我昏了,之前我把00,01,10,11理解成十进制的数字了。 > 就是说, > 当取到一个字串赋给$key之后, > $key=~s{A}{0}g; > $key=~s{G}{1}g; > $key=~s{T}{2}g; > $key=~s{C}{3}g; > 再用 exists(%hash{$key}); 检查是否有特定键值。是这样的吧? > > > On 9月23日, 上午11时17分, msmouse <[email protected]> wrote: > > 就是这个意思。前面agentzh说: > > ”事先约定 A,T,G,C 分别对应 00, 01, 10, 11,即 2 个比特的数值。“ > > 即用两个位表示一个字符,15个字符即是30位。30个二进制位即是15个4进制位 > > ---------------------------------- > > [email protected] > > [email protected] > > > > > --~--~---------~--~----~------------~-------~--~----~ 您收到此信息是由于您订阅了 Google 论坛“PerlChina Mongers 讨论组”论坛。 要在此论坛发帖,请发电子邮件到 [email protected] 要退订此论坛,请发邮件至 [email protected] 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛 -~----------~----~----~----~------~----~------~--~---
