<?php
/**
 * @class  	位操作
 */
class LibBit
{
	function __construct(){
	}
	/**
	 * Method 合并值(或操作)
	  * @param  [array]  $arr 例:[1,2,4,8,16....]
	  * @return [int]
	 */
    public static function xor($arr){
    	$result = 0;
		foreach($arr as $v){
			$result = $result | $v;
		}
		return $result;
	}
	/**
	 * Method 拆分值
	  * @param  [int]  $value 如: 7
	  * @return [array] 将拆分成 [1,2,4]
	 */
    public static function xsplit($value){
    	$enum = [1,2,4,8,16,32,64,128,512,1024,2048,4096,8192,16384,32768]; //15种基状态
    	$data = [];
    	foreach($enum as $v){
    		if( ((int)$v ^ (int)$value) < (int)$value){
				$data[] = $v;
			}
    	}
    	return $data;
	}
}