- PR -

アスキーコードの10進数、2進数変換

1
投稿者投稿内容
くれよん
ベテラン
会議室デビュー日: 2005/04/28
投稿数: 74
投稿日時: 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型(文字)への変換方法を調べてのですが分かりませんでした。

ご教授よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-04 10:12
引用:

ジュンさんの書き込み (2005-12-04 02:26) より:

String valBin = Integer.toBinaryString(valInt);


この時点で 2 進数の値は文字列として求めれていますね。

引用:

このようにして、文字から2進数を得ています。
その後、以下のようにしてint型にしています。
int valInt = Integer.parseInt(valBin, 2);


その後、この 2 進数の数字を最初の 'A' に戻したいということですよね。
いろいろ方法はあるのですが、安易な方法として、

コード:

    java.lang.Character ch = new java.lang.Character((char)valInt);

    System.out.print(ch.toString());


こんな感じで出来ますね。(試してませんが)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
さいくろう
大ベテラン
会議室デビュー日: 2005/11/19
投稿数: 170
お住まい・勤務地: 川崎市
投稿日時: 2005-12-04 13:23
コード:
String str = new String((char)valInt);

かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 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 ]
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-12-04 13:37
引用:

さいくろうさんの書き込み (2005-12-04 13:23) より:
コード:
String str = new String((char)valInt);





Stringにcharを引数にするコンストラクタはないですよ。
さいくろう
大ベテラン
会議室デビュー日: 2005/11/19
投稿数: 170
お住まい・勤務地: 川崎市
投稿日時: 2005-12-04 13:57
ありゃま。orz
んじゃ、
コード:
char[] array = { (char)valInt };
String str = new String(array);


か、
コード:
String str = Charactor.toString((char)intValue);


ってところか。
くれよん
ベテラン
会議室デビュー日: 2005/04/28
投稿数: 74
投稿日時: 2005-12-04 14:21
みなさん分かりやすく回答していただき、ありがとうございます。

解決しました。

ありがとうごさいました。

1

スキルアップ/キャリアアップ(JOB@IT)