JAVA中如何将一个长度为8的boolean数组(每bit代表一个boolean值)转换为byte

cuiran 发布于 2014/07/04 16:36
阅读 2K+
收藏 0

各位好,想请教一下

JAVA中如何将一个长度为8的boolean数组转换为byte,谢谢!

加载中
0
cuiran
cuiran

引用来自“夜狼”的评论

public static void main(String[] args) {
	boolean[] bools = new boolean[]{true, true, false, true, false, false, false, false};
	// just like 0000 1011
	byte theByte = toByte(bools);
	System.out.println(theByte);
	// output 11
}

public static byte toByte(boolean[] array) {
	if(array != null && array.length > 0) {
		byte b = 0;
		for(int i=0;i<Math.min(array.length, 8);i++) {
			if(array[i]){
				b += (1<<i);
			}
		}
		return b;
	}
	return 0;
}



不错,谢谢!
0
黑牙菜菜
黑牙菜菜
protected byte toByte(boolean[] bools)
	{
		int value=0;
		for(boolean bool:bools)
		{
			value=value<<1;
			if(bool)
			{
				value+=1;
			}
		}
		return (byte)value;
	}



黑牙菜菜
黑牙菜菜
没验证
0
夜狼
夜狼
public static void main(String[] args) {
	boolean[] bools = new boolean[]{true, true, false, true, false, false, false, false};
	// just like 0000 1011
	byte theByte = toByte(bools);
	System.out.println(theByte);
	// output 11
}

public static byte toByte(boolean[] array) {
	if(array != null && array.length > 0) {
		byte b = 0;
		for(int i=0;i<Math.min(array.length, 8);i++) {
			if(array[i]){
				b += (1<<i);
			}
		}
		return b;
	}
	return 0;
}



返回顶部
顶部