我先描述一下场景。
我想做的是将字符串转换为十六进制。
例如,假设一个由 1 和 0 组成的二进制字符串。110011,将它们配对为一组 4 位(这里为 8 位附加两个 0),将每对分别转换为十六进制,然后将十六进制字符串结果连接起来以获得输出。
对于八进制,与二进制相同,但这里输入的八进制字符串被分成 3 位数字的组
对于 ASCII,每个数字的字节等效值将转换为十六进制并存储。
现在的问题是十进制字符串输入该怎么办?
- 我是否应该考虑使用与 ASCII 相同的方法?-或者还有其他方法吗?
编辑 :-
我不只是转换数字,而是转换数字数组。
二进制字符串 - 4 位数字组,然后将其转换为十六进制
八进制字符串 - 3 位数字组,然后将其转换为十六进制
ASCII 字符串 - 每个字符的字节等效值,然后将其转换为十六进制
所以长度不是问题。问题是如何转换十进制字符串(我应该使用哪种配对/分组)
注意:我已经知道如何将八进制、二进制和十进制数转换为十六进制。这部分更多的是关于如何“将十进制字符串分组”,以便将每个十进制分组分别转换为十六进制,然后将所得的十六进制连接起来。
这里没有必要重新发明轮子。
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 次 |
| 最近记录: |