【发布时间】:2012-11-14 13:23:47
【问题描述】:
好的,所以我在互联网上查找了以下代码,但是对于我的项目,我不允许使用代码,如果它有效就将其扔进去。我必须理解它,并且能够给出和解释代码以及它在做什么。
Convert.ToInt32("a").ToString("x");//ascii to hex
String.Join(String.Empty,
stringInput.Select(
c => Convert.ToString(
Convert.ToUInt32(c.ToString(), 16), 2).PadLeft(4, '0')));
你能解释一下这两行吗?
【问题讨论】:
-
那么究竟你在这行中有什么难以理解的?
-
也许你应该一次写一个,在调试器中一步一步写。例如,
int i = Convert.ToInt32("a");。然后看看i的值是多少。然后string s = i.ToString("x");并检查s的值。这将使您了解这些事情的作用。或者,您可以查找这些方法的文档。 -
@JimMischel 我知道 i.toString("x");格式化文本,但如何将“a”转换为十六进制而不指定其以 16 为基数?
-
"a"已经是一串十六进制数字,你不能“把它”变成十六进制。您可以使用ToInt32("a", 16)将十六进制数字字符串"a"转换为相应的整数0x0a,但是如果您转身将其转换回字符串,使用十六进制格式说明符,您只会得到"a"返回再次。
标签: c# binary hex ascii converter