
■=Perl, ■=結果
![]()
「テキストの色替え」の章で16進数を扱いましたが、ここではいろいろな書式で数を現したいと思います。
通常私たちが使っているのは10進数ですが、他にも月の表示は12進数ですよね。コンピュータでは2進数や8進数、16進数なども使うことがあります。そこでこれらをそれぞれに変換するにはどうしたらいいでしょうか。 |
#!/usr/local/bin/perl
$title = "springf 10→16";
print "Content-type: text/html\n\n";
require 'heder.txt';# ヘッダー読み込み
print "<table border=\"1\">";
print "<tr><td>10進数</td><td>16進数</td></tr>\n";
foreach $kazu (0..255) {
$str = sprintf('%X', $kazu);
print "<tr align=\"right\"><td>";
print "$kazu</td><td>$str";
print "</td></tr>\n";
}
print "</table>\n";
require 'fotter.txt';# フッター読み込み
exit;
|
16進数は 0 から FF までで、10進数の 0 から 255 までに対応しています。
$str2 = sprintf('%o', $kazu);
print $str2;
|
print hex($str); |
#!/usr/local/bin/perl
$title = "springf 10→16,8 16,8→10";
print "Content-type: text/html\n\n";
require 'heder.txt';# ヘッダー読み込み
print "<table border=\"1\">";
print qq|<tr><td align="center">10進数</td><td align="center">10→16進数<br>%x</td><td align="center">10→8進数<br>%o</td><td align="center">16→10進数<br>hex</td><td align="center">16→8進数<br>oct</td></tr>\n|;
foreach $kazu (0..255) {
$str = sprintf('%x', $kazu);
print "<tr align=\"right\"><td>";
print "$kazu</td><td>$str</td><td>";
$str2 = sprintf('%o', $kazu);
print $str2;
print "</td><td>";
print hex($str);
print "</td><td>";
print oct($str2);
print "</td></tr>\n";
}
print "</table>\n";
require 'fotter.txt';# フッター読み込み
exit;
|
| sprintf( "出力内容(%フォーマット文字)" , $変数1,$変数2,...); |
| %c | 文字(Character) |
| %s | 文字列(String) |
| %d | 数値変数の10進数(Deximal) |
| %x | 数値変数の16進数(heXadecimal) |
| %o | 数値変数の8進数(Octal) |
| %ld | 倍精度10進数(Long) |
| %u | 符号なし10進数(Unsigned) |
| %lu | 倍精度符号なし10進数 |
| %lx | 倍精度16進数 |
| %lo | 倍精度8進数 |
| %e | 指定記法の浮動少数(Exponential) |
| %f | 浮動小数点記法の浮動少数(Floating) |
| %g | 浮動小数点記法または指定記法のうち、少ないスペースで表現できる浮動少数 |
| (%nd) | 数値変数の10進展開 * |
| (%n.mf) | 小数点付き数値の10進展開 * |
| -(%-nd) | 左寄せで表示 * |
| # | 8進の整数は0で始まり、16進の整数は0xで始まるように表示 |
| +(%+d) | d,e,f,gを使う変数で、符号+または-をつけて表示 |
| 0(%0nd) | 文字数が足りない場合は0で埋める * |
$str = sprintf('%#x', $kazu);
$str2 = sprintf('%#o', $kazu);
|
| | Back | Coco's Home | ココとPerlで遊びませんか | |