这个问题你可以测试一下啊,先把整形存入磁盘,再按照字节读取出来,不就知道了。不过说真的,学java研究这种的意义不大。一般情况下都不需要考虑是低位在前还是高位在前。我做十几年的c编程也只曾经在一个项目中考虑过这种问题,是因为程序需要与其它机器通信(工控机),而对方传过来的字节数据在c里面需要做高低位转换才能够处理成整形。
解决方案 »
- 用HttpUrlConnection的时候,可否设置host?
- JAVA+ ORACLE
- 菜鸟求教
- xml文件解析字段
- 请教一个关于Java抛出异常问题,在线等!!
- 把一维数值中的数据按照顺序转换为2维数组的数据输出。
- java访问数据库的问题
- 在Dialog关闭的同时是触发一个jframe中的jtable刷新???在线等待呀!
- 如何将jtable中显示的数据转存为txt或者excel文件?(急!!)
- weblogic server作java web server性能怎么样,相比其他有啥优缺点,你觉得哪个web server 比较好
- 在PDF中加入图片,用Java实现
- 下面代码为什么不出现类转换异常,刚学java,请详细点,谢谢啦。
java不能直接写int啊,只能写byte[],在写硬盘之前,就要考虑大小端了
import java.io.*;public class Test { public static void main(String[] args) {
try {
DataOutputStream dos = null;
dos = new DataOutputStream(new FileOutputStream("e:\\abc.dat"));
dos.writeInt(0xFF00F00F);
dos.flush();
dos.close(); byte[] b = new byte[4];
InputStream is = new FileInputStream("e:\\abc.dat");
is.read(b);
is.close(); for (int i = 0; i < 4; i++) {
System.out.println("b[" + i + "]=" + b[i]);
}
} catch (Exception e) {
e.printStackTrace();
} }
}
此程序的运行结果是
b[0]=-1
b[1]=0
b[2]=-16
b[3]=15
可见在磁盘中存储的是高位在前,低位在后的,这很容易可以测试啊。
dos.writeInt(0xFF00F00F);
改成
dos.writeInt(0x01020304);
看的就更明显了,输出结果
b[0]=1
b[1]=2
b[2]=3
b[3]=4