输入 1234567890+-*/=() 得到
其实就是微机原理中的数码管
好辛苦……~~
class PrintNumbers
{
int ConvertToOX(char n)
{
switch (n)
{
case '1': return 0x4924;//100 1001 0010 0100
case '2': return 0x73e7;//111 0011 1110 0111
case '3': return 0x79e7;//111 1001 1110 0111
case '4': return 0x49ed;//100 1001 1110 1101
case '5': return 0x7bcf;//111 1011 1100 1111
case '6': return 0x7bef;//111 1011 1100 1111
case '7': return 0x4927;//100 1001 0010 0111
case '8': return 0x7bef;//111 1011 1110 1111
case '9': return 0x79ef;//111 1001 1110 1111
case '0': return 0x7b6f; //111 1011 0110 1111
case '+': return 0x25d2; //010 0101 1101 0010
case '-': return 0x1c0; //000 0001 1100 0000
case '*': return 0xaa8; //000 1010 1010 1000
case '/': return 0x21c2; //010 0001 1100 0010
case '=': return 0xe38; //000 1110 0011 1000
case '(':return 0x4494;//100 0100 1001 0100
case ')':return 0x1491;//001 0100 1001 0001
default: return 0;
}
}
void PrintNumber(string n)
{
int[] numbers = new int[n.Length];
//init
for(int i=0;i<n.Length;i++)
{
numbers[i]=ConvertToOX(n.ToCharArray()[i]);
}
int tooken = 0, ltooken = 0, rtooken = 0;
int kitooken = 0;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 5; i++)
{
//数字个数
for (int j = 0; j <n.Length; j++)
{
tooken = numbers[j] & 7;
numbers[j] >>= 3;
//下面这段可以 将二进制首位互换
//ltooken=tooken >> 2;
//rtooken = tooken & 1;
//rtooken = (rtooken << 2) | 3;//x11
//ltooken = (ltooken >> 2) | 5;//11x
//tooken &= rtooken;
//tooken &= ltooken;
for (int k = 0; k < 3; k++)
{
kitooken=tooken&1;
tooken >>= 1;
sb.Append(kitooken==1?"@":" ");
}
sb.Append(" ");
}
sb.Append("\n");
}
Console.WriteLine(sb.ToString());
}
static void Main(string[] args)
{
PrintNumbers p = new PrintNumbers();
p.PrintNumber("1234567890+-*/=()");
p.PrintNumber("1+(2-3)*4+5=6");
}
}
浙公网安备 33010602011771号