易经八卦,
在易经中,我们用—表示阳;--表示阴;
在计算机中, 用0表示--,1表示—;
两爻组合得到 太阳, 太阴, 少阳, 少阴, 在计算机中, 分别用11,00,10,01表示
三爻组合, 得到八卦, 乾、兑、离、震、巽、坎、艮、坤, 分别用111,110,101......001,000表示
两个八卦, 上下组合成64卦, 乾111111, 履110111...艮000001, 坤000000;
占卦, 得到一个本卦, 通过计算机计算, 很轻松得到 错卦(按位异或),互卦,综卦,杂卦;
根据每爻变化, 很简单得到变卦.
计算机对识别 初六,初九, 上六,上九,以及六二, 六三,六四, 可以保存为数组;
在计算机中,需要打印八卦以及六十四卦 图,
需要安装Yijing Symbols.ttf字体;
如: 坤 ䷁ 或䷁ 乾 ䷀ 或 ䷀
<style> @font-face{ font-family: "Yijing Symbols"; src:url("Yijing Symbols.ttf"); } body { font-family: "Yijing Symbols"; } </style> </head>
见图:
/** * 6位二进制数,取反, 011001->100110 **/ function cuoGua($data = ''){ // 根据异或长度计算匹配的数值 $numberLen = strlen($data); $xorValue = (1 << $numberLen) - 1; // 计算 2^$numberLen - 1 6位63 // 二进制到十进制 $decNumber = bindec($data); // 进行按位异或运算 $resultXor = $decNumber ^ $xorValue; // 补0 $result = str_pad(decbin($resultXor), $numberLen, '0', STR_PAD_LEFT); return $result; // 返回十进制结果 } function zongGua($data = ''){ $data = str_split($data); $xinArr = array( $data[5], $data[4], $data[3], $data[2], $data[1], $data[0], ); return implode('', $xinArr); } function zaGua($data = ''){ $data = str_split($data); $xinArr = array( $data[3], $data[4], $data[5], $data[0], $data[1], $data[2], ); return implode('', $xinArr); } function huGua($data = ''){ $data = str_split($data); $xinArr = array( $data[1], $data[2], $data[3], $data[2], $data[3], $data[4], ); return implode('', $xinArr); } function yaoName($data = ''){ $configArr = array( '06' => '初六', '16' => '六二', '26' => '六三', '36' => '六四', '46' => '六五', '56' => '上六', '09' => '初九', '19' => '九二', '29' => '九三', '39' => '九四', '49' => '九五', '59' => '上九', ); $data = str_split($data); foreach($data as $key => $val){ if($val > 0){ $result[$key] = $configArr[$key.'9']; }else{ $result[$key] = $configArr[$key.'6']; } } return $result; } function bianGua($data = '', $yao = 1){ $xinArr = str_split($data); ($xinArr[$yao-1] > 0)?$xinArr[$yao-1]=0:$xinArr[$yao-1]=1; return implode('', $xinArr); }