作者:实圪垯电动乐园_855 | 来源:互联网 | 2015-12-05 23:27
位运算好像也可以,这个实现思路是用的字符串截取,呵呵 十进制 转成 二进制,然后再用二进制转成格雷码
function decimal_to_gray($decimal){
//$decimal = str_split((string)decdecimal($decimal));
//先把十进制整形树字转换成二进制码
$decimal = (string)decbin($decimal);
$len = 4 - strlen($decimal);
if($len > 0){
for($i =0 ;$i<$len; $i++ ){
$decimal = '0'.$decimal;
}
}
$decimal = str_split($decimal);
$gray = '';
foreach($decimal as $k=>$v){
if($k == 0){
$gray .= $v;
}else{
$gray .= $decimal[$k-1] ^ (int)$v;
}
}
return $gray;
}