码迷,mamicode.com
首页 > 编程语言 > 详细

Java.io.DataInputStream.readInt()

时间:2016-10-25 13:37:03      阅读:368      评论:0      收藏:0      [点我收藏+]

标签:ascii   字符串   trace   class   try   data   stat   问题   rate   

1. 代码

import java.io.DataInputStream;
import java.io.IOException;

public class Test {

    public static void main(String[] args) {
        System.out.println("请输入数字:");
        DataInputStream dis = new DataInputStream(System.in);
        int x = 0;
        try {
            x = dis.readInt();
            System.out.println(x);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }
}

控制台输入 : 12并回车

控制台打印: 825363722

 

2. 解释

49*2^24 + 50*2^16 + 13*2^8 + 10 = 825363722

在控制台 输入12, 其实输入的是->

    字符‘1‘、字符‘2‘、回车、换行

对应的ASCII码是 49 50 13 10

Int类型是4个字节的 , 所以 readInt()从流里读出4个字节做位移运算  

这里存在一个把字符串二进制转换成整型的问题。

 

Java.io.DataInputStream.readInt()

标签:ascii   字符串   trace   class   try   data   stat   问题   rate   

原文地址:http://www.cnblogs.com/rocky-fang/p/5996034.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!