首页新闻找找看学习计划

java中有关DataInputStream

0
悬赏园豆:15 [已解决问题] 解决于 2018-12-16 13:51

package io_;
import java.io.;
import java.util.
;
public class Small {
public static void main(String [] args) throws IOException
{
System.out.println("请输入");
DataInputStream a=new DataInputStream(System.in);
int x=0;
x=a.readInt();
System.out.println("你输入的数字是"+x);
a.close();
}
}

这个的输出为什么是这样的

请输入
12
你输入的数字是825363722

同时为什么只有输入两位整数时才可以有输出,输入一位整数时没有输出呢

beautifulyan的主页 beautifulyan | 初学一级 | 园豆:177
提问于:2018-12-16 11:06
< >
分享
最佳答案
0


看到方法的解释了吗,返回你输入的四个字节,你要输至少两位再按回车才有四个字节,回车是回车换行,算两个字节,至于为什么是825363722,把他转成16进制你就明白了

十六进制的31即1,32即2,0d0a就是回车换行
就是你输入的12加上回车

收获园豆:15
流年飞雨 | 小虾三级 |园豆:1928 | 2018-12-16 12:14

数的那里还是不太理解
16进制有31,32吗???

beautifulyan | 园豆:177 (初学一级) | 2018-12-16 13:47

啊 我懂了
数字“1”被当做字符存储时,用的ASCII码,值是49(10进制),转化为16进制就是31(316^1 + 116^0)。

beautifulyan | 园豆:177 (初学一级) | 2018-12-16 13:50

@beautifulyan: 嗯

流年飞雨 | 园豆:1928 (小虾三级) | 2018-12-16 19:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册