繁体   English   中英

C#无法将字符串转换为字节数组以达到所需的结果?

[英]C# can't convert string to byte array to desired result?

我有只存储1和0的字符串..现在我需要将其转换为字节数组。 我试过了 ..

System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
                        byte[] d = encoding.GetBytes(str5[1]);

但是它给了我像48和49这样的ASCII字节数组,但是我想要在我的字节数组中为1和0。

那是来自编码的正确结果。 编码产生字节 ,而不是比特 如果需要bit ,则使用按位运算符检查每个字节。

foreach(var byte in d) {
    Console.WriteLine(byte & 1);
    Console.WriteLine(byte & 2);
    Console.WriteLine(byte & 4);
    Console.WriteLine(byte & 8);
    Console.WriteLine(byte & 16);
    Console.WriteLine(byte & 32);
    Console.WriteLine(byte & 64);
    Console.WriteLine(byte & 128);
}
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
                    byte[] d = encoding.GetBytes(str5[1]);
var dest[] = new byte();
var iCoun = 0;
var iPowe = 1;
foreach(var byte in d)
{
  dest[i++] = (byte & iPowe);
  iPowe *= 2;
}
foreach(var byte in dest)
{
  Console.WriteLine(byte);
}

不需要UTF编码,您说您有一个字符串'0''1' (字符),并且想要得到一个0 s和1 s(字节)的数组:

var str = "0101010";
var bytes = str.Select(a => (byte)(a == '1' ? 1 : 0)).ToArray();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM