Crittografia DNA cipher

Stato
Discussione chiusa ad ulteriori risposte.

Oromis92

Utente Silver
22 Dicembre 2007
102
12
2
84
qwertyuiop

1. legge da file
2. converte il valore di ogni byte in base4
3. trasforma ogni numero in lettera (0 → A // 1 → C // 2 → G // 3 → T)

Codice:
#!/usr/bin/perl

use strict;
use warnings;
use diagnostics;

my @base;
my @msg;
my $base4;
my $i;
my $msg;
my $num;
my $numX;
my $numY;

@base = ( "A", "C", "G", "T" );

$msg .= $_ while <>;
@msg = map ord, split //, $msg;

$i = 1;
print " ";

for ( 0 .. ( length $msg ) - 1 ) {

    $num = $msg[$_];

    while ( $num != 0 ) {

        $numX = int $num / 4;
        $numY = $num % 4;
        $base4 .= $numY;
        $num = $numX;

    }

    $base4 = reverse($base4);

    if ( length $base4 < 4 ) {

        $base4 = "0" . $base4 while length $base4 != 4;

    }

    for ( 0 .. 3 ) {

        print $base[ substr( $base4, $_, 1 ) ];
    }
    if ( $i == 16 ) {
        print "\n";
        $i = 0;
    }
    print " ";
    $i++;
    $base4 = "";
}

print "\n";
 
Stato
Discussione chiusa ad ulteriori risposte.