1 と 0 のみを格納している文字列があります。今度はそれをバイト配列に変換する必要があります。私は試した ..
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
byte[] d = encoding.GetBytes(str5[1]);
しかし、48や49のようなASCIIのバイト配列が得られますが、バイト配列に1と0が必要です..誰か助けてください
これは、エンコーディングからの正しい結果です。エンコーディングでは、ビットではなくバイトが生成されます。bitsが必要な場合は、ビットごとの演算子を使用して各バイトを調べます。すなわち
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);
}
UTF エンコーディングは必要ありません。s'0'とs (文字) の文字列があり、 s とs (バイト) の'1'配列を取得したいとします。01
var str = "0101010";
var bytes = str.Select(a => (byte)(a == '1' ? 1 : 0)).ToArray();
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);
}