- - PR -
アスキーコードの10進数、2進数変換
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-04 02:26
こんにちは、いつも勉強させていただいております。
文字から2進数へ、2進数から文字へ変換方法についての質問です。 String S = "A"; byte a[] = S.getBytes(); Integer value = new Integer(a[0]); int valInt = value.intValue(); String valBin = Integer.toBinaryString(valInt); このようにして、文字から2進数を得ています。 その後、以下のようにしてint型にしています。 int valInt = Integer.parseInt(valBin, 2); しかし、その後のint型からString型(文字)への変換方法を調べてのですが分かりませんでした。 ご教授よろしくお願いします。 | ||||||||||||
|
投稿日時: 2005-12-04 10:12
この時点で 2 進数の値は文字列として求めれていますね。
その後、この 2 進数の数字を最初の 'A' に戻したいということですよね。 いろいろ方法はあるのですが、安易な方法として、
こんな感じで出来ますね。(試してませんが) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2005-12-04 13:23
| ||||||||||||
|
投稿日時: 2005-12-04 13:34
文字列から文字を取得する場合に、
String#getBytesを使用するのはやめましょう。 文字がマルチバイトの場合に破綻します。 文字を取得するだけなら String#charAtやString#toCharArrayを使用します。 //文字=>2進数 String str = "a"; char ch = str.charAt(0); //1文字目を取得 String binStr = Integer.toBinaryString(ch); //2進数文字列を取得 //2進数=>文字 int i = Integer.parseInt(binStr,2); //10進化 char[] ca = new char[]{(char)i}; //char配列に変換 String str2 = new String(ca); //文字列化 もしくは、 int i = Integer.parseInt(binStr,2); //10進化 String str2 = String.valueOf((char)i); //文字列化 [ メッセージ編集済み 編集者: かつのり 編集日時 2005-12-04 13:35 ] | ||||||||||||
|
投稿日時: 2005-12-04 13:37
Stringにcharを引数にするコンストラクタはないですよ。 | ||||||||||||
|
投稿日時: 2005-12-04 13:57
ありゃま。orz
んじゃ、
か、
ってところか。 | ||||||||||||
|
投稿日時: 2005-12-04 14:21
みなさん分かりやすく回答していただき、ありがとうございます。
解決しました。 ありがとうごさいました。 |
1