int DecimalNum=45,temp=0,i=0;
char[] hexcode = new char[10];
while(DecimalNum != 0)
{
temp = DecimalNum%16;
if(temp <10)
{
hexcode[i]=Convert.ToChar(temp+48);
i++;
}
else if(temp >=10)
{
hexcode[i]=Convert.ToChar(temp+55);
i++;
}
DecimalNum=DecimalNum/16;
}
O / P:2D
有人可以解释一下为什么在转换为Char之前为什么要分别添加48和55吗?
答案 0 :(得分:2)
ASCII表中的0表示为48。 ASCII表中A的表示形式为65,六进制的A值为10(65-10 = 55)
答案 1 :(得分:1)
这些是字符0
和A
的ASCII码。
如果不这样做,ToChar
会将值转换为分别存储在索引0和索引10的ASCII符号。
公平地说,我发现这是一种非常粗略的方法。我希望有一个字符串"01234567890ABCDEF"
,并在该字符串中使用索引。这样,您就不必受限于系统的基础字符表示形式了。