>>33
アルゴリズムはよくわからないが
>g[m][n]=(unsigned char)a;
とやってる所を見ると精度がunsigned charになってしまう
からじゃないか?