ん,(unsigned char)0から1を減ずることはできないな
(unsigned char)0-1と書いても格上げが入るから
((int)(unsigned char)0)-((int)1)になるだけだ