2バイトの配列があります。 private byte [] mData;符号なしの値を持つJava - 奇妙なエラー
と方法:第二のassertメッセージ "255を期待したが、-1" で失敗し
public void testWord() {
Word word = new Word();
word.setWord((short) 0x3FFF);
Assert.assertEquals(0x3F, word.getByte(0));
Assert.assertEquals(0xFF, word.getByte(1));
}
:
public void setWord(final short pData) {
mData[0] = (byte) (pData >>> 8);
mData[1] = (byte) (pData);
}
私は簡単なテストを書きました。 私が知っている0xFF signed shortは、実際は-1ですが、なぜJUnitはそれらが等しくないのではないかと考えていますか?そして、そのようなクラスを実装する正しい方法は何ですか?
定数 '0xff'はintではありませんか?つまり、2番目の引数は自動的にintにキャストされます。 – biziclop
私は符号なしのintの不足が嫌いです。この質問はそれに関するものです。 http://stackoverflow.com/questions/430346/why-doesnt-java-support-unsigned-ints – aalku