【问题标题】:Convert a String to binary sequence in C# [duplicate]在C#中将字符串转换为二进制序列[重复]
【发布时间】:2012-04-15 22:45:50
【问题描述】:

可能重复:
How do you convert a string to ascii to binary in C#?

如何将字符串"Hello"转为二进制序列如1011010

【问题讨论】:

  • “你好”怎么变成1011010?
  • “Hello”的二进制序列恐怕不是1011010。
  • @Abdul,有可能,我们只需要知道映射算法。
  • @Lasse V. Karlsen 这是“Super Hello String Compressor v0.1”:->
  • 是的,它可能是,但映射算法是什么?

标签: c# string binary


【解决方案1】:

试试这个:

string str = "Hello"; 
byte []arr = System.Text.Encoding.ASCII.GetBytes(str);

【讨论】:

  • 我们只会通过您的代码获得字节数组...但查询是“在 C# 中将字符串转换为二进制序列”
  • 为什么这是公认的答案?
【解决方案2】:
string result = string.Empty;
foreach(char ch in yourString)
{
   result += Convert.ToString((int)ch,2);
}

这会将"Hello" 转换为10010001100101110110011011001101111

【讨论】:

  • 您的字符串只有 35 个字符。您的.ToString() 呼叫缺少.PadLeft(8, '0')
【解决方案3】:
string testString = "Hello";
UTF8Encoding encoding = new UTF8Encoding();
byte[] buf = encoding.GetBytes(testString);

StringBuilder binaryStringBuilder = new StringBuilder();
foreach (byte b in buf)
{
    binaryStringBuilder.Append(Convert.ToString(b, 2));
}
Console.WriteLine(binaryStringBuilder.ToString());

【讨论】:

  • 好一个...这是我正在搜索的代码....
  • 这不是公认的答案吗?
【解决方案4】:

使用 BitConverter 获取字符串的字节,然后将这些字节格式化为它们的二进制表示:

byte[] bytes = System.Text.Encoding.Default.GetBytes( "Hello" );
StringBuilder sb = new StringBuilder();
foreach ( byte b in bytes )
{
    sb.AppendFormat( "{0:B}", b );
}
string binary = sb.ToString();

【讨论】:

  • -1:接受字符串的 BitConverter.GetBytes 没有重载。
  • 谢谢,我才发现自己。将代码 sn-p 更改为使用编码。
猜你喜欢
  • 1970-01-01
  • 2012-08-16
  • 2014-06-30
  • 2015-12-08
  • 1970-01-01
  • 2013-01-16
  • 2018-06-05
  • 2013-10-29
  • 1970-01-01
相关资源
最近更新 更多