下面的代码运行完全正常。但是如何以从左到右的方式打印转换后的数字。例如,如果我输入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();
}
答案 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";
}