C# 十进制到十六进制的转换

C# 十进制到十六进制的转换,c#,C#,让我先描述一下情景 我要做的是把字符串转换成十六进制 例如,让我们假设一个由1和0组成的二进制字符串,即。110011, 将它们配对为一组4位数字(此处为8位数字添加两个0),将每对数字分别转换为十六进制,然后连接十六进制字符串结果以获得输出 对于八进制,和二进制一样,但这里输入的八进制字符串被分成3位数的组 对于ASCII码,每个数字的等效字节被转换为十六进制并存储 现在的问题是,对于十进制字符串输入,我应该怎么做 我应该考虑使用与ASCII相同的方法吗? -还是有别的办法 编辑:- 我不仅仅

让我先描述一下情景

我要做的是把字符串转换成十六进制

例如,让我们假设一个由1和0组成的二进制字符串,即。110011, 将它们配对为一组4位数字(此处为8位数字添加两个0),将每对数字分别转换为十六进制,然后连接十六进制字符串结果以获得输出

对于八进制,和二进制一样,但这里输入的八进制字符串被分成3位数的组

对于ASCII码,每个数字的等效字节被转换为十六进制并存储

现在的问题是,对于十进制字符串输入,我应该怎么做

我应该考虑使用与ASCII相同的方法吗? -还是有别的办法

编辑:-

我不仅仅是转换数字,而是转换一组数字

二进制字符串-由4位数字组成的组,然后将其转换为十六进制
八进制字符串-由3个数字组成的组,然后将它们转换为十六进制
ASCII字符串-每个字符的等效字节&然后将其转换为十六进制

所以长度不是问题。问题是如何转换十进制字符串(我应该使用哪种配对/分组)


注:我已经知道如何将八进制、二进制和十进制数字转换为十六进制。这一部分更多的是关于如何“将十进制字符串分成组”,以便将每个十进制组分别转换为十六进制,然后连接生成的十六进制。

实现这一点的最简单方法是将数字视为ASCII字符(0-9的ASCII值为48-57),并像您已经做的那样将其转换为十六进制


如果你想用另一种方式来做,你需要在你的程序中引入新的逻辑。这取决于您的个人喜好。

实现这一点的最简单方法是将数字视为ASCII字符(0-9的ASCII值为48-57),并像您已经做的那样将其转换为十六进制


如果你想用另一种方式来做,你需要在你的程序中引入新的逻辑。这取决于你的个人喜好。

这里没有必要重新发明轮子

string input = "123456";
string outputHex = int.Parse(input).ToString("X");

// output = "1E240"
或者更好:

string outputHex = Convert.ToString(int.Parse(input), 16);
此方法还可用于其他数字系统:

string outputOct = Convert.ToString(int.Parse(input), 8);
string outputBin = Convert.ToString(int.Parse(input), 2);

这里没有必要重新发明轮子

string input = "123456";
string outputHex = int.Parse(input).ToString("X");

// output = "1E240"
或者更好:

string outputHex = Convert.ToString(int.Parse(input), 16);
此方法还可用于其他数字系统:

string outputOct = Convert.ToString(int.Parse(input), 8);
string outputBin = Convert.ToString(int.Parse(input), 2);

你是说像这样。实际上这是二进制字符串。如上所述,问题是将十进制字符串转换为十六进制,然后像这样?好的,那就看吧。您可以解析为一个
biginger
,然后输出为十六进制。好的,所以您的问题不是将字符串从一个数字系统转换为另一个数字系统,而是将字符串拆分为段。在未来,你会得到更好的答案,因为你会更清楚地表达你的意图。拆分二进制/八进制/十进制/十六进制字符串仍然需要像以前一样进行初始转换。然后,您可以将字符串分成固定长度的段,如中。您的意思是像这样吗。实际上这是二进制字符串。如上所述,问题是将十进制字符串转换为十六进制,然后像这样?好的,那就看吧。您可以解析为一个
biginger
,然后输出为十六进制。好的,所以您的问题不是将字符串从一个数字系统转换为另一个数字系统,而是将字符串拆分为段。在未来,你会得到更好的答案,因为你会更清楚地表达你的意图。拆分二进制/八进制/十进制/十六进制字符串仍然需要像以前一样进行初始转换。然后,您可以将字符串分成固定长度的段,如。似乎是一种可能的解决方案,但在这种情况下,ascii和十进制字符串的转换将是相同的。如果您希望能够区分整数和整数字符串,您需要有一种方法来区分两者之间的差异。可能用双引号将一串整数括起来(您正在设计自己的编码系统。天空是您的极限。实际上,我没有设计编码系统,但它只是我的新应用程序中的一个功能。该应用程序将托管在github accout中,这似乎是一个可能的解决方案,但在这种情况下,ascii和十进制字符串的转换将是相同的。如果您希望能够区分ints和string of int,你需要有一种方法来区分两者之间的区别。可能用双引号将一个int字符串括起来(你正在设计自己的编码系统。天空是你的极限。实际上,我并没有设计编码系统,但它只是我新应用程序中的一个功能。该应用程序将托管在github accout中