>unsign char型(以後UBと表記)ですべて統一しているのに、マイナスの判定になります…。

あんま関係ないけど、

>unsign char

unsigned charでは?w