将字符串转换为八进制
Transform a string into an octal
我正在尝试将随机字符串转换为八进制 int32。如果有人给 ABCD 我想得到 101 102 103 104。我试过 int i = Convert.ToInt32("ABCD", 8);
您需要多个步骤:
- 获取您的输入字符串的字节(我将假定为 ASCII 编码)
- 以八进制表示法格式化字节
- 加入八进制得到一个结果(可选)
string input = "ABCD";
var bytes = Encoding.ASCII.GetBytes(input); // 65,66,67,68
var octals = bytes.Select(p => p.FormatOctal()).ToArray(); //101,102,103,104
var result = string.Join(" ", octals); //"101 102 103 104"
以八进制表示格式化字节的帮助程序
public static class MyExtensions
{
public static string FormatOctal(this byte value)
{
return Convert.ToString(value, 8);
}
}
因为 C# 中没有八进制整数文字,正如这里提到的那样 Octal equivalent in C#。您可以将字符串 display/work 与八进制数字一起使用。例如这样:
string text = "ABCD";
foreach (char c in text)
{
var octalString = Convert.ToString(c, 8);
Console.WriteLine(octalString);
}
控制台输出为:
101
102
103
104
如果您需要一个包含八进制等价物的字符串,您可以运行这样:
var s = "ABCD"
.Select(c => Convert.ToInt32(c))
.Select(v => Convert.ToString(v, 8))
.Aggregate((v0, v1) => $"{v0} {v1}");
如果您需要表示八进制值的整数(我不建议这样做),您可以将字符串表示形式转换回整数并将它们存储在数组中:
var i = "ABCD"
.Select(c => Convert.ToInt32(c))
.Select(v => Convert.ToString(v, 8))
.Select(v => Convert.ToInt32(v))
.ToArray();
我正在尝试将随机字符串转换为八进制 int32。如果有人给 ABCD 我想得到 101 102 103 104。我试过 int i = Convert.ToInt32("ABCD", 8);
您需要多个步骤:
- 获取您的输入字符串的字节(我将假定为 ASCII 编码)
- 以八进制表示法格式化字节
- 加入八进制得到一个结果(可选)
string input = "ABCD";
var bytes = Encoding.ASCII.GetBytes(input); // 65,66,67,68
var octals = bytes.Select(p => p.FormatOctal()).ToArray(); //101,102,103,104
var result = string.Join(" ", octals); //"101 102 103 104"
以八进制表示格式化字节的帮助程序
public static class MyExtensions
{
public static string FormatOctal(this byte value)
{
return Convert.ToString(value, 8);
}
}
因为 C# 中没有八进制整数文字,正如这里提到的那样 Octal equivalent in C#。您可以将字符串 display/work 与八进制数字一起使用。例如这样:
string text = "ABCD";
foreach (char c in text)
{
var octalString = Convert.ToString(c, 8);
Console.WriteLine(octalString);
}
控制台输出为: 101 102 103 104
如果您需要一个包含八进制等价物的字符串,您可以运行这样:
var s = "ABCD"
.Select(c => Convert.ToInt32(c))
.Select(v => Convert.ToString(v, 8))
.Aggregate((v0, v1) => $"{v0} {v1}");
如果您需要表示八进制值的整数(我不建议这样做),您可以将字符串表示形式转换回整数并将它们存储在数组中:
var i = "ABCD"
.Select(c => Convert.ToInt32(c))
.Select(v => Convert.ToString(v, 8))
.Select(v => Convert.ToInt32(v))
.ToArray();