[過去ログ]
プログラミングのお題スレ Part21 (1002レス)
プログラミングのお題スレ Part21 http://mevius.5ch.net/test/read.cgi/tech/1668333636/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
935: 638 [sage] 2023/07/14(金) 16:41:43.17 ID:9h33JNqm >>927 Perl5 for (qw(0x13 0x45 0x92C)) { $n = eval; @a = map{sprintf "0x%x", $_} grep{($_ & $n) == $_} 0..$n; print "$_: @a\n"; } ※インデントは全角スペースに置換してあります。 実行結果 $ perl 21_927.pl 0x13: 0x0 0x1 0x2 0x3 0x10 0x11 0x12 0x13 0x45: 0x0 0x1 0x4 0x5 0x40 0x41 0x44 0x45 0x92C: 0x0 0x4 0x8 0xc 0x20 0x24 0x28 0x2c 0x100 0x104 0x108 0x10c 0x120 0x124 0x128 0x12c 0x800 0x804 0x808 0x80c 0x820 0x824 0x828 0x82c 0x900 0x904 0x908 0x90c 0x920 0x924 0x928 0x92c http://mevius.5ch.net/test/read.cgi/tech/1668333636/935
936: 638 [sage] 2023/07/14(金) 18:16:11.02 ID:9h33JNqm >>935 これだとコード書くの安直で楽だけど、効率悪いんだよね、特に値が大きいとき。 効率に配慮すると、こうか↓ sub f { if (@_) { my $b = shift; @_ ? map{$_, $_ | 2**$b} f(@_) : ($_, $_ | 2**$b); } } for (qw(0x13 0x45 0x92C)) { $n = eval; @b = grep{$n & 2**$_} 0..31; @s = map{sprintf "0x%x", $_} f(@b); print "$_: @s\n"; } ※インデントは全角スペースで置換してありま 実行結果: $ perl 21_927_effective_bit_mask.pl 0x13: 0x0 0x1 0x2 0x3 0x10 0x11 0x12 0x13 0x45: 0x0 0x1 0x4 0x5 0x40 0x41 0x44 0x45 0x92C: 0x0 0x4 0x8 0xc 0x20 0x24 0x28 0x2c 0x100 0x104 0x108 0x10c 0x120 0x124 0x128 0x12c 0x800 0x804 0x808 0x80c 0x820 0x824 0x828 0x82c 0x900 0x904 0x908 0x90c 0x920 0x924 0x928 0x92c http://mevius.5ch.net/test/read.cgi/tech/1668333636/936
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.038s