質問です。
signed→unsigned変換、unsigned→signed変換をするために
こんな感じで書きました。
変換の過程でデータが誤変換することは考えられますか?
またもっと良い変換方法はありますか?

signed char sc_before[5] = {0,-1,2,-3,4};
signed char sc_after[5];
unsigned char uc_after[5];
int i;
for(i=0; i<5;i++) {
uc[i] = sc_before[i];
}

/* ucを処理 */

for(i=0; i<5;i++) {
sc_after[i] = uc[i];
}