如何从左到右打印输出?

时间:2014-07-13 16:31:22

标签: c#

下面的代码运行完全正常。但是如何以从左到右的方式打印转换后的数字。例如,如果我输入898989,它将给我输出DB7AD。我该如何打印

  • DB7AD

    D 
    
       B
    
          7
    
              A
    
                 D    
    

    代码:

    public static void Main()
    {
        int decimalNumber, quotient;
        int i = 1, j, num = 0;
        char [] hexadecimalNumber = new char[100];
        char temp;
        Console.WriteLine("Decimal to HexaDecimal conversion using Ascii code.\n");
        Console.WriteLine("Input DECIMAL NUMBER(S) you want to convert to      HEXADECIMAL(S):\t\n");
        Console.Write("Decimal Numbers : \t");
    
        decimalNumber = int.Parse(Console.ReadLine());
        quotient = decimalNumber;
        while (quotient != 0)
        {
            num = quotient % 16;
            if (num < 10)
                num = num + 48;
            else
                num = num + 55;
            temp = Convert.ToChar(num);
            hexadecimalNumber[i++] = temp;
            quotient = quotient / 16;
        }
    
        Console.Write("HexaDecimal Numbers : \t");
    
        for (j = i - 1; j > 0; j--)
        Console.Write(hexadecimalNumber[j]);
        Console.WriteLine();
        Console.Read();
    
    }
    

1 个答案:

答案 0 :(得分:2)

由于您要逐个字符地打印数字,因此需要修改此循环

for (j = i - 1; j > 0; j--) {
    Console.Write(hexadecimalNumber[j]);
}

以这样的方式在第一个数字之前打印零标签,在第二个数字之前打印一个标签,在第三个数字之前打印两个标签,依此类推。您可以通过创建string tabs变量并在每次迭代后向其添加"\t"来执行此操作:

string tabs = "";
for (j = i - 1; j > 0; j--) {
    Console.WriteLine(tabs + hexadecimalNumber[j]);
    tabs += "\t";
}

Demo on ideone.