java位操作、BitSet例程

public class BitMover {
	//交换一个字节高四位与低四位的位置
	public static byte swap(byte b){
		int lowBits=b&0xF;//获得低4位
		int highBits=b&0xF0;//获得高4位
		//把低4位左移4位变成高4位
		//把高4位无符号右移4位变成低4位
		//再把两者进行位或
		int result=(lowBits<<4)|(highBits>>>4);
		return (byte)result;//截取int型数据后8位
	}
	public static void main(String[] args) {
		System.out.println(swap((byte)10));
		System.out.println(swap((byte)1));
		System.out.println(swap((byte)-1));//在内存中要以补码运算
		System.out.println(Integer.toBinaryString(-1));
	}
}

import java.util.BitSet;
public class Testyunsuanfu {

	public static void main(String[] args) {
		int a=-2;
		int b=3;
		System.out.println(Integer.toBinaryString(a));
		System.out.println(Integer.toBinaryString(b));
		System.out.println("a&b=>"+Integer.toBinaryString(a&b)+":"+(a&b));//按位与
		System.out.println("a^b=>"+Integer.toBinaryString(a^b)+":"+(a^b));//按位异或
		boolean f=false;
		boolean t=true;
		System.out.println("f&t=>"+(f&t));//逻辑与
		
		int c=0xf;//注意是零xf
		System.out.println("c=>"+Integer.toBinaryString(c));
		System.out.println("c=>"+c);
		
		int g=0xf0;
		byte bt=12;
		System.out.println("bt的二进制:"+Integer.toBinaryString(bt));
		System.out.println("bt的高4位:"+Integer.toBinaryString(g&bt));
		System.out.println("g=>"+Integer.toBinaryString(g));
		System.out.println("g=>"+g);
		
		BitSet bt1=new BitSet(4);//创建一个长度为4的位"数组",0至长度减1
		BitSet bt2=new BitSet(6);
		bt1.set(1);//第1位设为true
		bt1.set(3);
		bt2.set(0);
		bt2.set(3);
		bt2.set(5);
				//输出原来的bitSet
		for(int i=0;i<bt1.length();i++){
			System.out.print(bt1.get(i)+" ");
			if(i==bt1.length()-1){System.out.println();}
		}
		for(int i=0;i<bt2.length();i++){
			System.out.print(bt2.get(i)+" ");
			if(i==bt2.length()-1){System.out.println();}
		}
		System.out.println("bt1=>"+bt1);
		System.out.println("bt2=>"+bt2);
		(bt1).or(bt2);
		//bt1执行了或之后结果保存在bt1中
		System.out.println("(bt1).or(bt2)=>"+bt1);
		//输出执行了or之后的bitSet
		for(int i=0;i<bt1.length();i++){
			System.out.print(bt1.get(i)+" ");
			if(i==bt1.length()-1){System.out.println();}
		}
		
		for(int i=0;i<bt2.length();i++){
			System.out.print(bt2.get(i)+" ");
			if(i==bt2.length()-1){System.out.println();}
		}
	}
}


你可能感兴趣的:(java位操作、BitSet例程)