ならば、分岐命令を使わないこんなのもアリ?

byte b;
int i = ((int)b << 24) >> 31) & (int)b;

符号拡張部分:((int)b << 24) >> 31 は
b >= 0x80 で 0xffffffff (-1)
b < 0x80 で 0x00 (0)