求代码,谢谢大佬
ç¨PHPè·å¾è¿ä¸ªåç代ç ãç¹éµåéªè¯ï¼
<?php
$hz="æ";
$n=ord($hz);
$n1 = ord(substr($hz,0,1)) - 160;
$n2 = ord(substr($hz,1,1)) - 160;
$offset = ($n1-1)*94 + ($n2-1);
echo "æ±åã{$hz}ãï¼å ç ã".bin2hex($hz)."ãï¼åºã{$n1}ãï¼ä½ã{$n2}ãï¼ååºå移ã{$offset}ã\n";
$hzk=substr(file_get_contents('hzk16'),$offset * 32,32);
//æ¾ç¤ºååº
$dbstr=[];
for ($i=0;$i<32;$i++) {
$dbstr[]=ord(substr($hzk,$i,1));
}
echo implode(',',$dbstr) . "\n";
//æ¾ç¤ºæ±å
for ($i=0;$i<32;$i++) {
$c=ord(substr($hzk,$i,1));
//echo "$c:\n";
$m = 1<<7;
for ($j=0;$j<8;$j++){
//echo "({$j} {$m} ";
echo ($c & $m) ? '*' : '.';
//echo ")\n";
$m >>= 1;
}
if ($i % 2 == 1) echo "\n";
}
?>
è¿è¡ç»æè§ä¸å¾ï¼
é£ä¹ä½ éè¦çshellèæ¬ä¸ºï¼
echo ' *'
echo ' * *'
echo ' *************'
echo ' *'
echo ' * * *'
echo ' * * **'
echo ' ** * ***'
echo '** * *'
echo ' *******'
echo ' *'
echo ' ** *'
echo ' *************'
echo ' *'
echo ' *'
echo ' * *'
echo ' *'
一是要知道李的字形码。字形码就是把一个字放到一个二进制矩阵里(比如8×8点阵),被字遮住的部分为1,否则为0。这样就能描述一个字,点阵越大字越清楚。
二shell的二进制位操作能力很差。
三具体方法:得到想要显示字的字形码,把字形码中1的换成*号,把0换成空白。对应的得到一个文本格式的矩阵文件(这步用C实现很方便,shell挺难的。实在不行的话,可以手工做一个字的矩阵文本文件)。然后再在shell把这个文本矩阵显示出来。
自己敲
和画画一样