byteとintを論理演算すると、勝手に符号拡張されるので困ってます。
例えば以下のソースで、

------------------------
int i = 0;
byte b = -1;

i = i | b;
------------------------

やりたいことは、iのビットパターンを以下のようにしたいんだけど、
00000000 00000000 00000000 11111111

実際はこうなってしまいます。
11111111 11111111 11111111 11111111

これってどうすれば回避できるんでしたっけ・・・