可以的
可以先把int转成byte[]
int i=99999;
byte []b=new byte[4];
b[0]=(byte)(i&oxff);
b[1]=(byte)(i>>8&oxff);
b[2]=(byte)(i>>16&oxff);
b[3]=(byte)(i>>24&oxff); 然后对相同的位进行^操作
byte temp=(bte)a[i]^b[i];
可以先把int转成byte[]
int i=99999;
byte []b=new byte[4];
b[0]=(byte)(i&oxff);
b[1]=(byte)(i>>8&oxff);
b[2]=(byte)(i>>16&oxff);
b[3]=(byte)(i>>24&oxff); 然后对相同的位进行^操作
byte temp=(bte)a[i]^b[i];
b[1]=(byte)(i>>8&oxff);
b[2]=(byte)(i>>16&oxff);
b[3]=(byte)(i>>24&oxff);
分别做什么用的呢
能说得详细一点吗
byte是8位的
上面四个语句是分别取出其中的8位,然后保存在byte[]中>>是右移
&可以得到一个8位的byte
您说的对相同的位进行^操作,如果我从文件中读取的byte[]长度超过4怎么比较呢
我对位运算一窍不通,麻烦了
如果超过了,就可以先把int转出来的byte[]数扩成和你的数组一样大比如byte[]是5个元素
那么
int i=..
byte[] b=new byte[5];
byte[0]=...byte[3]=..//上面四个还是那么做
int i=0;
byte[4]=(byte)(i&0xff);