当前位置: 代码迷 >> java >> IOStream将数据写入控制台
  详细解决方案

IOStream将数据写入控制台

热度:84   发布时间:2023-08-02 10:58:43.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?

另外,需要0100 0001

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

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



 }
}

由于0065是八进制十进制53十六进制0x35的ASCII字符5