Java IOStream将数据写入控制台

Java IOStream将数据写入控制台,java,Java,我已经读到,当字节输出流输出时,只使用低阶8位,那么为什么我得到5位呢? 还有,为什么我没有得到65的二进制或十六进制格式 如果我删除前导的2个零,并将b的值设为65,那么我得到的答案是“A”,但为什么通过放置前导的2个零,我得到的不是答案,而是“5” 还有为什么我得到的答案是一个字符,而不是二进制格式的“out”是一个Byte OutputStream对象,应该用字节写 public static void main(String[] args) { int b = 0

我已经读到,当字节输出流输出时,只使用低阶8位,那么为什么我得到5位呢? 还有,为什么我没有得到65的二进制或十六进制格式

如果我删除前导的2个零,并将b的值设为65,那么我得到的答案是“A”,但为什么通过放置前导的2个零,我得到的不是答案,而是“5”

还有为什么我得到的答案是一个字符,而不是二进制格式的“out”是一个
Byte OutputStream
对象,应该用字节写

    public static void main(String[] args) {
        int b = 0065;
        System.out.write(b);
        System.out.flush();

    }
期望的“A”,实际的5


另外,类
java.lang.System
中所需的
0100 0001

静态字段
out
具有类型
java.io.PrintStream

PrintStream
有几个
write()
方法。在代码中,传递给方法
write()
的参数是
int
,因此方法invokde是
write(int)
。您正在为局部变量
b
分配一个数字文本。在java中,以零(0)开头的数字文字表示八进制数,八进制中的65表示十进制中的53(五十三),53表示数字5(五)的ASCII码。请参考,类
java.lang.Integer
具有静态方法
tobinarysting()
。我建议您查看javadoc以了解该方法。

类中的静态字段
out
java.lang.System
具有类型
java.io.PrintStream
public class StackOverFlow{

 public static void main(String []args){

    int x = 0065;// in java when you append zero like 011 or 0023 its take as octal number,when you print it will convert to decimal

System.out.println(x); // 0065 is octal value when you convert to decimal it will be 53 and in hexa 35

int y = 056;//octal value

System.out.println(y); // Output:46 decimal value



 }
}

PrintStream
有几个
write()
方法。在代码中,传递给方法
write()
的参数是
int
,因此方法invokde是
write(int)
。您正在为局部变量
b
分配一个数字文本。在java中,以零(0)开头的数字文字表示八进制数,八进制中的65表示十进制中的53(五十三),53表示数字5(五)的ASCII码。请参考,类
java.lang.Integer
具有静态方法
tobinarysting()
。我建议您查看javadoc以了解该方法。

因为
0065
是十进制的八进制
53
对于十六进制
0x35
对于ASCII字符
5
,因为
0065
对于十六进制
0x35
对于ASCII字符
5
是十进制的八进制

public class StackOverFlow{

 public static void main(String []args){

    int x = 0065;// in java when you append zero like 011 or 0023 its take as octal number,when you print it will convert to decimal

System.out.println(x); // 0065 is octal value when you convert to decimal it will be 53 and in hexa 35

int y = 056;//octal value

System.out.println(y); // Output:46 decimal value



 }
}