从十进制到十六进制的数字基数转换
本文关键字:转换 数字 十进制 十六进制 | 更新日期: 2023-09-27 18:11:17
在下面的代码中,有人能让我明白代码是如何以字母形式打印输出的吗?代码的哪一部分将数字转换为字母?如果我输入999,它会把它转换成3E7。
class program
{
public static void Main()
{
int decimalNumber, quotient;
int i = 1, j, temp = 0;
char[] hexadecimalNumber = new char[100];
char temp1;
Console.WriteLine("Enter a Decimal Number :");
decimalNumber = int.Parse(Console.ReadLine());
quotient = decimalNumber;
while (quotient != 0)
{
temp = quotient % 16;
if (temp < 10)
temp = temp + 48;
else
temp = temp + 55;
temp1 = Convert.ToChar(temp);
hexadecimalNumber[i++] = temp1;
quotient = quotient / 16;
}
Console.Write("Equivalent HexaDecimal Number is ");
for (j = i - 1; j > 0; j--)
Console.Write(hexadecimalNumber[j]);
Console.Read();
}
}
这里计算字符值:
if (temp < 10)
temp = temp + 48;
else
temp = temp + 55;
48是数字"0"的ASCII码,55是数字"A"的ASCII码。
48 + 0 == '0'
48 + 1 == '1'
...
48 + 9 == '9'
55 + 10 + 0 == 'A'
55 + 10 + 1 == 'B'
...