十进制到十六进制的转换

Gam*_*tee 0 c#

我先描述一下场景。

我想做的是将字符串转换为十六进制。

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

对于八进制,与二进制相同,但这里输入的八进制字符串被分成 3 位数字的组

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

现在的问题是十进制字符串输入该怎么办?

- 我是否应该考虑使用与 ASCII 相同的方法?-或者还有其他方法吗?

编辑 :-

我不只是转换数字,而是转换数字数组。

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

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

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

Abi*_*n47 6

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

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

// output = "1E240"
Run Code Online (Sandbox Code Playgroud)

或者甚至更好:

string outputHex = Convert.ToString(int.Parse(input), 16);
Run Code Online (Sandbox Code Playgroud)

此方法还允许您执行其他数字系统:

string outputOct = Convert.ToString(int.Parse(input), 8);
string outputBin = Convert.ToString(int.Parse(input), 2);
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

12598 次

最近记录:

6 年,10 月 前