linux shell脚本,如何用星号 输出"李"这个字?

求代码,谢谢大佬

用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 '      *'

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-09
其实这个就相当于LED灯矩阵显示汉字,这事儿挺麻烦的!
一是要知道李的字形码。字形码就是把一个字放到一个二进制矩阵里(比如8×8点阵),被字遮住的部分为1,否则为0。这样就能描述一个字,点阵越大字越清楚。
二shell的二进制位操作能力很差。
三具体方法:得到想要显示字的字形码,把字形码中1的换成*号,把0换成空白。对应的得到一个文本格式的矩阵文件(这步用C实现很方便,shell挺难的。实在不行的话,可以手工做一个字的矩阵文本文件)。然后再在shell把这个文本矩阵显示出来。
第2个回答  2019-11-11
echo " *** "
自己敲
和画画一样

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网