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());
    }
}

该程序返回值为 1 而不是 01,但是,我希望它是 01(已设置)如果已设置 01,如何从字节获取 01 输出。

4

5 回答 5

15

您需要区分文本表示和固有值。

我今年 37 岁。我也是 0x25 岁和 045 岁(八进制)-它们是相同的数字,但表示形式不同。数字本身没有表示的概念。

如果您想以特定方式将字节转换为字符串,您应该将其作为格式化的一部分 - 它不是与字节关联的数据的一部分。无论您如何初始化它,该值都是相同的。

于 2013-09-10T11:00:58.577 回答
7

01 == 1 == 001 == 00000001, 它们都是相同的值。如果要更改打印方式,则需要更改打印语句。

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

试试下面,

public static void main(String[] args) {    
    final byte a = 01;  
    example e =  new example();
    e.setB1(a);

    System.out.println(String.format("0%d", e.getB1()));
    }
于 2013-09-10T11:14:26.547 回答
0

试试下面,只是另一种方式

import java.text.DecimalFormat;

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 = 1;  
    example e =  new example();
    e.setB1(a);
    DecimalFormat df = new DecimalFormat("00");
    System.out.println( df.format(e.getB1()));
    }
}
于 2013-09-10T11:08:32.527 回答
-1

ab1, 和 , 的返回值getB1是数字,011是同一个数字,即一。如果您希望保留零,您可以将它们更改为字符串,但是您不能再对它们进行计算。

于 2013-09-10T11:03:08.603 回答