2017-02-27 1 views
-2

어떻게 배열 XOR에 대한XOR 계산기는 칼

예를 들어 기본 기능을 만들려면 : 내 $ a를 = "08 F6"; my $ b = "4C 6E";

출력 = http://xor.pw/ 등 44 98

되어야 하는가? 문자열에

+3

참고 한'$의 A'와'$의 b'를 사용할 수 없습니다. 그것은'sort'와 다른 subs와 간섭 할 수 있습니다. – ikegami

답변

4

사용 XOR :

my $x_hex = '08 F6'; 
my $y_hex = '4C 6E'; 

my $x = pack('(H2)*', split(' ', $x_hex)); # my $x = "\x08\xF6"; 
my $y = pack('(H2)*', split(' ', $y_hex)); # my $y = "\x4C\x6E"; 

my $z = $x^$y;        # my $z = "\x44\x98"; 

my $z_hex = join(' ', unpack('(H2)*', $z)); # my $z_hex = "44 98"; 

번호를 XOR을 사용 :

my $x_hex = '08 F6'; 
my $y_hex = '4C 6E'; 

my @x = map { hex($_) } split(' ', $x_hex);   # my @x = (0x08, 0xF6); 
my @y = map { hex($_) } split(' ', $y_hex);   # my @y = (0x4C, 0x6E); 

my @z = map { $x[$_]^$y[$_] } 0..$#x;    # my @z = (0x44, 0x98); 

my $z_hex = join ' ', map { sprintf("%02X", $_) } @z; # my $z_hex = "44 98"; 
+0

thx 대답은 다음과 같습니다. * –