日期:2014-05-20  浏览次数:20710 次

RandomAccessFile小问题,在线等
java代码中
 RandomAccessFile raf = new RandomAccessFile(file, "rw"); 

  raf.seek(2);

 int num=raf.read()<<24;

现问: 第二行和第三行什么意思呀,thanks

------解决方案--------------------
第二行是移动指针

第三行是读出一个byte后进行移位运算
------解决方案--------------------
raf.seek(2); 从文件的第三个字节开始
int num=raf.read()<<24; 读取一个字节,向左位移24位
读出的是:0x09 -> 将变成0x9000000。

------解决方案--------------------
第一行:看API
第二行:看JAVA移位操作符
------解决方案--------------------
探讨

2楼的
向左位移24位是什么意思
比如
int num=0x7fffffff;
num 向左位移24位得多少呢

------解决方案--------------------
你大可自己写代码测试看下结果
Java code

int num = 0x7fffffff;
System.out.println(Integer.toBinaryString(num<<24));

------解决方案--------------------
探讨

2楼的
向左位移24位是什么意思
比如
int num=0x7fffffff;
num 向左位移24位得多少呢