[Rio-pm] O programador mais fodido da cidade
Aureliano Guedes
guedes_1000 em hotmail.com
Sábado Fevereiro 11 07:32:01 PST 2012
Bom dia, monges!
Gostaria de saber se alguem pode me ajudar em uma questão peculiar.
Eu não entendo muito de bitwise, a questão de bit e byte me confundem muito,
mas eu queria perguntar como passar uma letra do minusculo para o maiusculo.
Eu ja tenho um script que fiz que faz essa conversão, mas a questão aqui é fazer isso bit a bit!
#!/usr/local/bin/perl
use common::sense;
sub inverter{
my @result = undef ;
my $nome = shift;
my @letr = split (//, $nome);
foreach my $let (@letr) {
if ($let eq uc $let) {
my $chng = lc $let;
push (@result, $chng);
}
elsif ($let eq lc $let){
my $chng = uc $let;
push (@result, $chng);
}
}
print @result, "\n";
}
my $ENT = <STDIN>;
my $inv = inverter $ENT;
exit 0 ;
(sei que ta grande, mas sou iniciante ainda)
A letra 'a' é representada pelo binario '01100001' e a letra 'A' é representada pelo binario '01000001'.
O que eu entendo é que tudo esta ligado ao quinto bit, que quando ligado a letra sai minuscula e quando
desligado sai maiuscula!
Eu queria um script que fizesse isso a nivel binario, ou seja se o quinto bit esta ligado desliga ele
se esta desligado o liga!
É mais por questão de estudo mesmo, agradeço a ajuda!
Ps: eu tentei fazer da seguinte forma, mas não da certo!
#!/usr/local/bin/perl
use common::sense;
chomp (my $entrada = <STDIN>);
my @name = split (//, $entrada);
my $n = @name;
for (my $i= 0; $i = $n - 1; $i++){
my @change = split (//, binmode $name[$i]);
#8 digitos 3 define masc ou min
if ($change[2] == 0){
$change[2] += 1;
}
elsif ($change[2] == 1){
$change[2] -= 1;
}
}
print @name, "\n";
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20120211/cfd27b81/attachment.html>
Mais detalhes sobre a lista de discussão Rio-pm