3

ここに小さなプログラムがあります

public class example {  
    private byte b1;
    public byte getB1() {
        return b1;
    }
    public void setB1(byte b1) {
        this.b1 = b1;
    }
public static void main(String[] args) {    
    final byte a = 01;  
    example e =  new example();
    e.setB1(a);
    System.out.println(e.getB1());
    }
}

このプログラムは値を 01 ではなく 1 として返しますが、01 (設定済み) であると予想しています。 01 が設定されている場合、バイトから 01 出力を取得する方法。

4

5 に答える 5

15

テキスト表現と固有の値を区別する必要があります。

私は37歳です。私も 0x25 歳で、045 歳 (8 進数) です。これらは同じ数字ですが、表現が異なります。数自体には表現の概念はありません。

特定の方法でバイトを文字列に変換する場合は、フォーマットの一部として行う必要があります。これは、バイトに関連付けられたデータの一部ではありません。は同じですが、初期化します。

于 2013-09-10T11:00:58.577 に答える
7

01 == 1 == 001 == 00000001、それらはすべて同じ値です。印刷方法を変更したい場合は、print ステートメントを変更する必要があります。

System.out.printf("%02d%", e.getB1()); // print a leading zero.
于 2013-09-10T11:02:32.830 に答える
-1

ab1、および の戻り値getB1は数値であり、011は同じ数値、つまり 1 です。ゼロを保持したい場合は、それらを文字列に変更できますが、それらを使用して計算を行うことはできなくなります。

于 2013-09-10T11:03:08.603 に答える