DataInputStream 的readInt 算法

//inputstream 一次读一个byte

//int 有4个byte,故读四次

//首次读的ch1是这个整数的高8bit,故前移(4×8-8×1=24),同理ch2 前移(4×8-8×2=18)位

public final int readInt() throws IOException {
        int ch1 = in.read();
        int ch2 = in.read();
        int ch3 = in.read();
        int ch4 = in.read();
        if ((ch1 | ch2 | ch3 | ch4) < 0)
            throw new EOFException();
        return ((ch1 << 24) + (ch2 << 16) + (ch3 << 8) + (ch4 << 0));
    }

你可能感兴趣的:(算法,byte)