アプリ版:「スタンプのみでお礼する」機能のリリースについて

C#で電子透かしのプログラムを作ってるのですが、テキストボックスに入力した文字列(日本語)をビット列に変換する方法はないでしょうか?
VBだとchngBit()という関数がありますが、アルファベットしかダメみたいです。

A 回答 (2件)

返信が遅くなってすみません。



>これだと16進数の文字列に変換されますが、2進数の文字列に変換するにはどうしたらよいのでしょうか?
GetBytes()で取得したバイト列から各ビットを取り出せばよいでしょう。
2進数の文字列に変換したいのであれば、ビット演算を使用して

byte[] bytes = sjisEnc.GetBytes(str);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bytes.Length; i++) {
  byte b = bytes[i];
  for (int j = 0; j < 8; j++) {
    sb.Append(b & 0x80);
    b <<= 1;
  }
}
String binaryString = sb.ToString();

とでもすれば良いかと…。
ただし、ビルドしてないのでミスがあるかもしれません。

#0、1の値を持つ配列等ではなく2進数の文字列でいいんですよね?
    • good
    • 0
この回答へのお礼

ありがとうございます。プログラミングは得意でないのですが、頑張って実装してみます。

お礼日時:2004/09/29 03:09

Encoding.GetBytes()を使ってできます。



参考URL:http://www.atmarkit.co.jp/fdotnet/dotnettips/010 …

この回答への補足

これだと16進数の文字列に変換されますが、2進数の文字列に変換するにはどうしたらよいのでしょうか?

補足日時:2004/09/27 16:23
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。試してみます。

お礼日時:2004/09/26 22:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!