有用JAVA实现bit-map吗? 假如要使一个char数组或者byte数组中的每一位应该怎么做
publicstaticvoidmain(String[]args){int[]A=newint[]{2,34,6,15,7,8,9,93,100};byte[]c=ne...
public static void main(String[] args) {
int[] A=new int[]{2,34,6,15,7,8,9,93,100};
byte[] c=new byte[13];
//设置所有的位都为0
for(int i=0;i<13;i++){
c[i]=(byte) ((byte)c[i]&0x0);
}
//数组加入到c中
c=setBit(c,A);
//输出c
outPut(c);
}
public static byte[] setBit(byte[] c,int[] num){
for(int i=0;i<num.length;i++){
int j=num[i]/8;//一个字节八位
c[j]=(byte) ((int)c[j]|(0x1<<(j%8)));
}
return c;
}
public static void outPut(byte[] c){
for(int i=0;i<c.length;i++){
for(int k=0;k<8;k++){
if((c[k]&1<<k)==(1<<k)){
System.out.print(i*8+k+" ");
}
}
}
} 展开
int[] A=new int[]{2,34,6,15,7,8,9,93,100};
byte[] c=new byte[13];
//设置所有的位都为0
for(int i=0;i<13;i++){
c[i]=(byte) ((byte)c[i]&0x0);
}
//数组加入到c中
c=setBit(c,A);
//输出c
outPut(c);
}
public static byte[] setBit(byte[] c,int[] num){
for(int i=0;i<num.length;i++){
int j=num[i]/8;//一个字节八位
c[j]=(byte) ((int)c[j]|(0x1<<(j%8)));
}
return c;
}
public static void outPut(byte[] c){
for(int i=0;i<c.length;i++){
for(int k=0;k<8;k++){
if((c[k]&1<<k)==(1<<k)){
System.out.print(i*8+k+" ");
}
}
}
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询