{"id":261,"title":"\u4e00\u79cd\u7cbe\u5999\u7684\u6570\u636e\u67e5\u8be2\u4e0e\u5b58\u50a8\u65b9\u5f0f","good":0,"bad":0,"hit":2374,"created_at":"2017-03-10 17:29:33","content":"
\u5047\u5982\u4e00\u79cd\u5546\u54c1\u4e0a\u6709\u8fd9\u6837\u51e0\u4e2a\u968f\u673a\u6807\u7b7e\u5c5e\u6027\uff1a\u3010\u56fd\u5916\u3011\u3010\u7f8e\u56fd\u3011\u3010\u8fdb\u53e3\u3011\u3010\u7ea2\u8272\u3011\u3010\u7eff\u8272\u3011<\/p>
\u5047\u5982\u8fd9\u51e0\u4e2a\u5c5e\u6027\u662f\u56fa\u5b9a\u7684\uff08\u5c5e\u6027\u4e2a\u6570\u4e0d\u662f\u5f88\u591a\uff09\uff0c\u6211\u4eec\u53ef\u4ee5\u7ed9\u4ed6\u7f16\u4e2a\u53f7\uff1a<\/p>
1\u56fd\u59162\u7f8e\u56fd4\u8fdb\u53e38\u7ea2\u827216\u7eff\u8272<\/p>
\u5047\u5982A\u7684\u5c5e\u6027\u4e3a\u56fd\u5916\uff0c\u7f8e\u56fd\uff0c\u7eff\u8272\uff0c\u5219\u5c06\u5176\u5c5e\u6027\u5b58\u4e3a19\uff081+2+16\uff09<\/p>
\u5047\u5982B\u7684\u5c5e\u6027\u4e3a\u56fd\u5916\uff0c\u7f8e\u56fd\uff0c\u7ea2\u8272\uff0c\u5219\u5c06\u5176\u5c5e\u6027\u5b58\u4e3a11\uff081+2+8\uff09<\/p>
\u5982\u679c\u8981\u67e5\u540c\u65f6\u5177\u6709\u56fd\u5916\uff0c\u7f8e\u56fd\u5c5e\u6027\u7684\u5546\u54c1\uff0c\u53ef\u4ee5\u7528(\u5b57\u6bb5\u540d&3)=\u5b57\u6bb5\u540d\u8fd9\u79cd\u4f4d\u8fd0\u7b97\u65b9\u5f0f\uff0c3\uff08\u53731\u56fd\u5916+2\u7f8e\u56fd=3\uff09<\/p>
<\/p>
\u9644\u4e24\u79cd\u89e3\u8fd9\u79cd\u4ee5\u548c\u5b58\u50a8\u7684\u65b9\u6cd5\uff1a<\/p>
\/\/\u5c061\uff0c2\uff0c4. \u3002\u3002\u3002\u8fd9\u79cd\u89c4\u5f8b\u5b58\u50a8\u7684\u6750\u8d28\uff0c\u624b\u5bf8\u7684\u548c\u8fd8\u539f\u4e3a\u7531\u54ea\u4e9b\u6570\u636e\u76f8\u52a0\u5f97\u51fa\u7684\uff1b
function sumReduction($v){
$size_all=(string)(decbin($v));\/\/\u548c
$size_all=strrev($size_all);
$l=strlen($size_all);
$gs='';
$arr=array();
for($i=0;$i<$l;$i++){
$d=(int)substr($size_all,$i,1);
\/\/echo $d.'<br\/>';
$m=pow(2,$i);
$gs+=$d*$m;
if($d>0){
array_push($arr,$m);
}
}
return $arr;
}
\tfunction extract_binary($input) {
\t \/\/\u6570\u5b57\u8f6c\u4e8c\u8fdb\u5236\u5b57\u7b26\u4e32
\t $string = decbin($input);
\t \/\/\u7ffb\u8f6c\u5b57\u7b26\u4e32
$string = strrev($string);
\/\/\u5b57\u7b26\u4e32\u62c6\u6210\u6570\u7ec4
\t $values = str_split($string);
\t \/\/\u8fc7\u6ee4\u6389\u6570\u7ec4\u4e2d\u76840\uff0c\u53ea\u5269\u4e0b1\uff0c\u5143\u7d20\u7d22\u5f15\u4e0d\u53d8
$values = array_filter($values, function($value) {
return $value;
});
\/\/\u628a\u5269\u4e0b\u7d22\u5f15\u53d6\u51fa
$keys = array_keys($values);
\/\/\u7d22\u5f15\u662f\u51e0\uff0c\u5c31\u662f2\u7684\u51e0\u6b21\u65b9
$segments = [];
foreach ($keys as $k) {
$segments[] = pow(2, $k);
}
return $segments;
}
<\/p>
<\/p>
<\/p>
\u4ee5\u4e0a\u7684\u65b9\u5f0f\u5c5e\u5408\u5c5e\u6027\u4e0d\u591a\uff0c\u4e14\u56fa\u5b9a\u7684\u60c5\u51b5\uff1b<\/p>
<\/p>
\u53e6\u5916\u53ef\u4ee5\u7528\uff1a<\/p>
mysql\u4e2dFIND_IN_SET\u7684\u4f7f\u7528\u65b9\u6cd5<\/p>
FIND_IN_SET(str,strlist)\u51fd\u6570<\/p>
str \u8981\u67e5\u8be2\u7684\u5b57\u7b26\u4e32<\/p>
strlist \u5b57\u6bb5\u540d \u53c2\u6570\u4ee5\u201d,\u201d\u5206\u9694 \u5982 (1,2,6,8)\/\/\u5b58\u50a8\u7684\u6570\u636e\u683c\u5f0f\uff0c\u524d\u540e\u4e0d\u8981\u7528\u9017\u53f7\uff0c\u662f\u4e00\u79cd\u96c6\u5408\u7684\u65b9\u5f0f\u67e5\u8be2\uff0c\u975e\u5e38\u65b9\u4fbf\uff0c\u9002\u5408\u5c5e\u6027\u5f88\u591a\u7684\u60c5\u51b5<\/p>
\u67e5\u8be2\u5b57\u6bb5(strlist)\u4e2d\u5305\u542b(str)\u7684\u7ed3\u679c\uff0c\u8fd4\u56de\u7ed3\u679c\u4e3anull\u6216\u8bb0\u5f55<\/p>
\u4e0b\u9762\u4e3e\u4f8b\u8bf4\u660e<\/p>
test\u8868\u4e2d\u6709\u5982\u4e0b\u5b57\u6bb5\u53ca\u503c<\/p>
<\/p>
\u4e0b\u9762\u6211\u60f3\u67e5\u8be2area\u4e2d\u5305\u542b\u201d1\u2033\u8fd9\u4e2a\u53c2\u6570\u7684\u8bb0\u5f55<\/p>
SELECT * from test where FIND_IN_SET('1',area)
<\/p>
<\/p>
<\/p>
\u8fd8\u6709\u4e00\u79cd\u7b28\u529e\u6cd5\u5c31\u662f\u4ee5(,1,2,4,8,)\u8fd9\u79cd\u524d\u540e\u6709\u9017\u53f7\u7684\u65b9\u5f0f\u5b58\uff0c\u67e5\u7684\u65f6\u5019\u7528like '%,1,%'\u8fd9\u79cd\u65b9\u5f0f<\/p>"}