引用元:https://www.ioccc.org/2006/sykes2/sykes2.c
審査員・作者による説明:https://www.ioccc.org/2006/sykes2/hint.text
動作
デジタル時計を表示する。
$ gcc -o sykes2 sykes2.c
$ ./sykes2
!! !!!!!! !!!!!! !!!!!! !!!!!! !!
!! !! !! !! !! !! !! !! !! !!
!! !! !! !! !! !! !! !! !! !!
!! !!!!!! !! !! !! !! !! !! !! !! !!
!! !! !! !! !! !! !! !! !!
!! !! !! !! !! !! !! !! !!
!! !!!!!! !!!!!! !!!!!! !!!!!! !!
解説
130文字のワンライナー。
">'txiZ^(~z?"
が7segのフォントデータに相当する。
各文字の2進数表記は次の通り。
6543210
'0' : 0111111 ('>')
'1' : 0101000 ('\'')
'2' : 1110101 ('t')
'3' : 1111001 ('x')
'4' : 1101010 ('i')
'5' : 1011011 ('Z')
'6' : 1011111 ('^')
'7' : 0101001 ('(')
'8' : 1111111 ('~')
'9' : 1111011 ('z')
':' : 1000000 ('?')
このそれぞれのビットは、次に示す位置を塗るべきかどうかを表現している。
004455
11 55
11 55
116655
22 33
22 33
444433
たとえば0
は、6以外の位置を塗りつぶす。
1
は、3と5だけを塗りつぶす。
2
は、0、2、4、5、6を塗りつぶす。
このレイアウトのマスクは、";;;====~$::199"[(i*2&8)|(i/64)]/(i&2?1:8)%8
という式が作り出す。
プログラムは全体的に、極力短いコードでこれらを実現できるよう、計算方法や演算子の選択を非常に巧妙に行っている。
演算子の優先順位表を見たくなるだろう、とのこと。