public static byte[] int2Byte(int x){
byte[] bs=new byte[4];
bs[0]=(byte) ((int)(x>>0*8)&0xff);
bs[1]=(byte) (((int)x>>1*8)&0xff);
bs[2]=(byte) (((int)x>>2*8)&0xff);
bs[3]=(byte) (((int)x>>3*8)&0xff);
return bs;
}
不强制转为int也可以运行
byte[] bs=new byte[4];
bs[0]=(byte) ((int)(x>>0*8)&0xff);
bs[1]=(byte) (((int)x>>1*8)&0xff);
bs[2]=(byte) (((int)x>>2*8)&0xff);
bs[3]=(byte) (((int)x>>3*8)&0xff);
return bs;
}
不强制转为int也可以运行
2017-12-14
已采纳回答 / Hinstro
A=A^B;B=A^B=(A^B)^B=A^(B^B)=A^0=A;A=A^B=(A^B)^A=(A^A)^B=0^B=B;∵一个数“异或”本身时等于0
2017-12-07
已采纳回答 / 诸葛云飞
在本节中11001111是存放在字节byte中的,字节是8位,java中最高位表示符号位,所以byte的取值范围是-2^7~2^7-1,即1000 0000~0111 1111,十进制是-128~127.11001111(看作无符号十进制是207),这是补码,原码为00110001(看作无符号十进制是49),如果你把这个想象为无符号的(十进制也要想象为无符号,即-49为49),那相加为1 0000 0000即2^8=256,即所有的负值的byte的补码和源码想象为无符号的话之和为256
2017-12-01
//转化byte[]为long
public static long bytes2Long(byte[] arr) {
int result = 0;
for (int i =0;i <arr.length;i++){
result += (long) ((arr[i] & 0xff) << i * 8);
}
return result;
}
老师没有把方法中的"int" 改成"long".只有我一个人发现了么.同意的点赞!!
public static long bytes2Long(byte[] arr) {
int result = 0;
for (int i =0;i <arr.length;i++){
result += (long) ((arr[i] & 0xff) << i * 8);
}
return result;
}
老师没有把方法中的"int" 改成"long".只有我一个人发现了么.同意的点赞!!
2017-11-19