>>128
あれ?ちょっとまって。

hex[0]には最上ビットに符号の意味を持たせなきゃいけないんじゃないかな?
多分これだと

0x7fffffffと0xffffffffが同じ数字になりそうな悪寒。