- ベストアンサー
[再質問]VC#で2進数の文字列をバイト列に変換する方法
No.1029439で質問して回答頂きましたが、もう一度お願いします。 string strに2進数の文字列がNバイト分入っているとします(0か1が8×N個入っている)。これを1バイト分ずつbyte型の配列に入れたいです。 例えば、str = "1010111100101100"と2バイト分入ってるときは、byte型の配列bytesに bytes[0] =0xAF(10101111) bytes[1] =0x2C(00101100) となるようにしたいです。 最終的には↓のようにして、文字を出力したいためです。 Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS"); string str = sjisEnc.GetString(bytes); http://www.atmarkit.co.jp/fdotnet/dotnettips/011byte2str/byte2str.html よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あんまり、良いプログラムとはいえないですが、サンプルを作ってみました。 using System; public class binToBytes { public static void Main() { String binString = "1010111100101100"; Byte[] bytes = new Byte[binString.Length / 8]; Byte wk=0; for(int i=0;i<binString.Length;i++){ wk = (Byte)(wk*2 + Char.GetNumericValue(binString, i)); if((i+1)%8==0){ bytes[i/8]=wk; wk=0; } } // 表示 for(int i=0;i<bytes.Length;i++){ Console.Write( "{0:X}",bytes[i]); } } }
その他の回答 (1)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
8bit分の変換をN回繰り返すだけのことですが、何がわからんのですか?
お礼
文字列と数値の関係がよく分からないです。一応基本情報処理は持っているんですが、かなり前にとったので(笑)。最近は他の事に興味があり、プログラミングはあんまり勉強する気にならなくて、ろくに調べもせず質問してしまいすみません。いろいろありがとうございました。また、お願いします。
お礼
ありがとうございます。試してみます。
補足
無事動きました。とりあえず、電子透かしのプログラムが完成しました。みなさん、ありがとうございました。