tech.guitarrapc.cóm

Technical updates

PowerShellで16進法FF早見表を描いてみた

寝れないので、ちょっと頭の運動にやってみました。

では、PowerShellでワンライナーで出力してみましょう。 

0埋めで出力

0埋めにどうしても if を使ってしまってぐぬぬ…。

1..15 | %{1..15 | %{[string]$result+= "   "}{$result+= "0{0:X} " -F $_ }{$result += "`n"}}{$result += "$("0{0:X}" -f $_;$_ | %{ $x=$_; 1..15 | %{if(("{0:X}" -F ($_ * $x)).length -eq 1){"0{0:X}" -F ($_ * $x)}else{"{0:X}" -F ($_ * $x)} }}) `n"}{$result}

[17/Feb/2013] isishizukaさんから、{0:X2}でどうといわれてifをはずせたので修正しました。 ずっと{0:2X}であれーと言っていたのは内緒です。

1..15 | %{1..15 | %{[string]$result+= "   "}{$result+= "{0:X2} " -F $_ }{$result += "`n"}}{$result += "$("{0:X2}" -f $_;$_ | %{ $x=$_; 1..15 | %{"{0:X2}" -F ($_ * $x) }}) `n"}{$result}

出力結果です。

   01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 
01 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 
02 02 04 06 08 0A 0C 0E 10 12 14 16 18 1A 1C 1E 
03 03 06 09 0C 0F 12 15 18 1B 1E 21 24 27 2A 2D 
04 04 08 0C 10 14 18 1C 20 24 28 2C 30 34 38 3C 
05 05 0A 0F 14 19 1E 23 28 2D 32 37 3C 41 46 4B 
06 06 0C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A 
07 07 0E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69 
08 08 10 18 20 28 30 38 40 48 50 58 60 68 70 78 
09 09 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87 
0A 0A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96 
0B 0B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5 
0C 0C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4 
0D 0D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3 
0E 0E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2 
0F 0F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1

0埋めなしで出力

いや、0を外しただけで、コードはほとんど変わっていないというw

1..15 | %{1..15 | %{[string]$result+= "   "}{$result+= " {0:X} " -F $_ }{$result += "`n"}}{$result += "$(" {0:X}" -f $_;$_ | %{ $x=$_; 1..15 | %{if(("{0:X}" -F ($_ * $x)).length -eq 1){" {0:X}" -F ($_ * $x)}else{"{0:X}" -F ($_ * $x)} }}) `n"}{$result}

出力結果です。

    1  2  3  4  5  6  7  8  9  A  B  C  D  E  F 
 1  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F 
 2  2  4  6  8  A  C  E 10 12 14 16 18 1A 1C 1E 
 3  3  6  9  C  F 12 15 18 1B 1E 21 24 27 2A 2D 
 4  4  8  C 10 14 18 1C 20 24 28 2C 30 34 38 3C 
 5  5  A  F 14 19 1E 23 28 2D 32 37 3C 41 46 4B 
 6  6  C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A 
 7  7  E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69 
 8  8 10 18 20 28 30 38 40 48 50 58 60 68 70 78 
 9  9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87 
 A  A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96 
 B  B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5 
 C  C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4 
 D  D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3 
 E  E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2 
 F  F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1 

まとめ

先生方、出番でございます。