バイナリクロック
バイナリクロック どう書く?org を見て、バイナリクロックを作ってみました。 既にAWK Users JP :: LL Golf Hole 6 - 10進数を2進数に基数変換するで 10 進数を 2 進数に変換する部分は完成していますので、簡単に書くことができます。
#! /usr/local/bin/gawk -f
# binclock.awk
# バイナリクロック
# usage: gawk -f binclock.awk
BEGIN {
now_hour = strftime("%H");
now_min = strftime("%M");
bin_now_hour = dec2bin(now_hour);
bin_now_min = dec2bin(now_min);
gsub(/0/, "_", bin_now_hour);
gsub(/1/, "#", bin_now_hour);
gsub(/0/, "_", bin_now_min);
gsub(/1/, "#", bin_now_min);
print bin_now_hour;
print bin_now_min;
}
# dec2bin(): 10 進数を 2 進数に変換
# in: 10 進数 (num)
# out: num の 2 進数
function dec2bin(num, rem, str) {
while (num > 0) {
rem = int(num % 2);
if (rem == 1) {
str = "1" str;
} else {
str = "0" str;
}
num = int(num / 2);
}
return str;
}
ここの環境が UTF-8 の環境のため、日本語などの記号の幅が崩れるため 1 byte の文字を用いています。
$ gawk -f binclock.awk #_##_ #_#__#
直感的に時間が分かりにくいのですが、22:41 です。


