1. 一个int数值按照规格“占2个字节,低位在前,高位在后” 用java怎么实现
65535是个不当的抄例子,
二进制的2个字节
11111111 11111111
谁先随后都没有区别。
“低位在前,高位在后”是小端数
Java在输出时可以
short s=(short)0xABCD;//原数ABCD二个字节
byte a[]=new byte[2];//准备两个字节
a[0]=(byte)(s&0xff); //获得低位字节
a[1]=(byte)(s>>>8);//获得高位字节
outputstream.write(a);//在输出流把数组a依次写入,就写了一个小端数。
2. 一个int数值按照规格“占2个字节,低位在前,高位在后” 用JAVA怎么实现。举例65535会是多少
65535是个抄不当的例子,
二进制的2个字节
11111111 11111111
谁先随后都没有区别。
“低位在前,高位在后”是小端数
Java在输出时可以
short s=(short)0xABCD;//原数ABCD二个字节
byte a[]=new byte[2];//准备两个字节
a[0]=(byte)(s&0xff); //获得低位字节
a[1]=(byte)(s>>>8);//获得高位字节
outputstream.write(a);//在输出流把数组a依次写入,就写了一个小端数。
3. java 16进制高低位转换问题
将数据转换成16进制,可以用InteInteger.toHexString()这个方法。
将16进制转换成10进制,可以用intValue()方法。
高低位转换就不知道了哦。。。
下面是测试代码,希望能帮到你~!
public class DataTransfer {
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer a = -1;
System.out.println(Integer.toHexString(a));
Integer b = 0xff;
System.out.println(b.intValue());
}
}
下面这个是在网上找到的,高低位转换:
// Java读取后,顺序已经反了
int javaReadInt = ;
// 将每个字节取出来
byte byte4 = (byte) (javaReadInt & 0xff);
byte byte3 = (byte) ((javaReadInt & 0xff00) >> 8);
byte byte2 = (byte) ((javaReadInt & 0xff0000) >> 16);
byte byte1 = (byte) ((javaReadInt & 0xff000000) >> 24);
// 拼装成 正确的int
int realint = (byte1& 0xff)<<0 + (byte2& 0xff)<<8 + (byte3& 0xff)<< 16 +(byte4& 0xff)<<24 ;