Perlトレーニングブック Part 04
use strict;
use warnings;
use Data::Dumper;
my $c = ord('A');
my ( $i, $ret );
printf( "%c(%d:%x)\n", $c, $c, $c );
for ( my $i = 7; $i >= 0; $i-- ) {
$ret = $c & ( 1 << $i );
printf( "%d", $ret ? 1 : 0 );
}
print "\n";
- 論理積をとりながら、1ビットずつ左シフトしていき、条件演算子で判断して0/1表示・・・うーん、なんか合わない感じ。
printf( "%d", $ret ? 1 : 0 )
- print分のところで条件演算し使っているけど、つまりこれはif文。
- コードは短いけど、なんか・・・よっしゃ!自分で書き直したるわ!!
my $num = 7;
my @array;
for ( my $i = 3; $i >= 0; $i-- ) {
my $ret = $num & ( 1 << $i );
if($ret == 0){
push @array , 0;
}else{
push @array , 1;
}
}
- 思った以上に短くならなかったなぁ。ビット計算むずかしい。
- と思ってたけど、思い出してきたわ!情報処理試験でやった!
- この本の想定している読者って割とハイレベルなんだろうか・・・