gpt4 book ai didi

c# - 将字符串二进制转换为 ascii

转载 作者:行者123 更新时间:2023-11-30 22:27:26 24 4
gpt4 key购买 nike

我刚开始为 wp7 开发应用程序,我正在尝试使用 C# 将二进制字符串转换回 ascii。

但我不知道该怎么做。希望有人能在这里帮助我。

例子:

输入字符串:0110100001100101011011000110110001101111

输出字符串:hello

最佳答案

简单的解决方案,

使用 SubString 和内置的 Convert.ToByte 看起来像这样:

string input = "0110100001100101011011000110110001101111";
int charCount = input.Length / 8;
var bytes = from idx in Enumerable.Range(0, charCount)
let str = input.Substring(idx*8,8)
select Convert.ToByte(str,2);
string result = Encoding.ASCII.GetString(bytes.ToArray());
Console.WriteLine(result);

另一种解决方案,自己计算:

如果您想知道应该如何执行计算,而不是框架中的哪个方法为您执行计算,我添加了这个:

string input = "0110100001100101011011000110110001101111";
var chars = input.Select((ch,idx) => new { ch, idx});
var parts = from x in chars
group x by x.idx / 8 into g
select g.Select(x => x.ch).ToArray();

var bytes = parts.Select(BitCharsToByte).ToArray();
Console.WriteLine(Encoding.ASCII.GetString(bytes));

BitCharsToByte 执行从 char[] 到相应字节的转换:

byte BitCharsToByte(char[] bits) 
{
int result = 0;
int m = 1;
for(int i = bits.Length - 1 ; i >= 0 ; i--)
{
result += m * (bits[i] - '0');
m*=2;
}
return (byte)result;
}

以上两种解决方案做的基本是一样的:首先将字符分成8个一组;然后获取该子字符串,获取表示的位并计算字节值。然后使用 ASCII 编码将这些字节转换为字符串。

关于c# - 将字符串二进制转换为 ascii,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11280631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com