Java基礎知識へ戻る | サンプル集目次へ戻る

実行結果
CharOperationサンプルソース
人は生まれ、そして死ぬ。「生」と「死」の行き着く先には何があるのか? まさか、その答えがUnicodeに隠されていたとは……。この事実に気づいたのは、僕が世界で最初だと思います。すごいだろ……あんまりすごくないかも。とにかく、あなたも神秘のメッセージの目撃者になってください。
CharOperation.java
/**
 * 愛のJava256本ノック for Java 5.0
 * Javaサンプルソース ver0.2C "CharOperation"
 * CharOperation.java 「Unicode文字同士をビット演算」
 *
 * 2005/09/23 制作:安永ノリカズ
 *
 * 【コンパイル&実行方法】
 *     >javac CharOperation.java
 *     >java CharOperation
 * 【キーワード】
 *     ビット演算(bit operation), 論理積(and), ユニコード(Unicode),
 *     java.util.Formatterクラス, 
 * 【試してみよう】
 *     二つの漢字をコマンドラインから受け取るようにする。
 *     OR演算やXOR演算も試してみる。
 *     
 */
import java.lang.Integer;
import java.lang.String;
import java.lang.System;

public class CharOperation {
    public static void main(String[] A00) {
        char L00 = '生';
        char L01 = '死';
        char L02 = (char)(L00 & L01);

        System.out.printf("「%c」と「%c」、それは「%c」である。%n", L00, L01, L02);
        System.out.println(L00 + ":" + Integer.toBinaryString(L00));
        System.out.println(L01 + ":" + Integer.toBinaryString(L01));
        System.out.println(L02 + ":" + Integer.toBinaryString(L02));
    }
}

/* ■ クラスの外でちょっと一言 ■
その昔、アルファベットの大文字小文字変換は、ビット演算解説の定番テーマで
した。おかげで、ビット演算の仕組みのみならず、文字を数値として処理する実
感も学ぶことができました。ASCIIコード表をながめて、「なるほどな」と納得
したものです。

ところが、最近はそんなナイスなテーマがないんですよね。Stringクラスのメ
ソッドを呼べば、基本的な処理はほとんど可能なんですから。でも、文字に対す
る演算は、コンピュータの本質を理解するうえでも重要な要素。てなわけで、
『愛のJava256本ノック』では、強引に文字を数値として処理することに、真剣
に取り組んでます。

char型同士をANDした結果に、わざわざchar型をキャスト(型変換)してます
が、これは「数値演算の結果は、int型またはlong型になる」というJavaの言語
仕様のためです。

ちなみに、JIS第一水準に限定し、漢字同士をANDして別の漢字になる組み合わせ
を調べたところ、30万8395通りありました。OR、XORも含めると、相当な数にな
りますね。きっと他にもUnicodeに隠されたメッセージが存在すると思います。
お暇な方は探してみてください。
 */
↑ 先頭へ戻る

安永ノリカズのゲーム制作&Javaサンプル集 / Java初心者用サンプル集『愛のJava256本ノック』