JavaA2Z

KAB-studio > プログラミング > JavaA2Z > 0xとは

0x

日本語 ゼロエックス
英語 zero x
ふりがな ぜろえっくす
フリガナ ゼロエックス

解説

整数リテラル16進数表記を使用する時に、頭に付ける文字
 
整数リテラルの頭に「0x」もしくは「0X」を付けると、その値は16進数と見なされる。
たとえば「int i = 0xA;」と記述した場合、変数iに16進数の「A」、つまり10進数の「10」が格納される。
 
頭に付ける文字は「0x」「0X」どちらでも構わない。
また、16進数表記内のアルファベットは大文字でも小文字でも構わない。
つまり「0xa」「0xA」「0Xa」「0XA」はすべて同じである。本辞書では見やすさを考えて「0xA」の形式で統一してある。
16進数表記内のアルファベットは、16進数であるため当然「A~F」「a~f」しか使用できない。「G~Z」「g~z」を使用するとコンパイルエラーとなる。また「0x」「0X」のみでもコンパイルエラーとなる。
 
整数リテラル16進数で表記したとしても、内部的には2進数の形式で保存されている点に注意。
int i = 10;」も「int i = 0xA;」も、変数iには「00000000000000000000000000001010」が保存されている。

この値を16進数形式で文字列化する場合は、IntegerクラスのtoHexString()メソッドを使用する。

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // 整数リテラルを16進数で表記するときには、頭に0xを付けます。
        int i = 0xA;
        System.out.println( Integer.toHexString( i ) );
        System.out.println( i );
        // a
        // 10

        // A~Fは小文字のa~fでも使えます。
        i = 0xc;
        System.out.println( Integer.toHexString( i ) );
        System.out.println( i );
        // c
        // 12

        // 0xの代わりに0XでもOK。
        i = 0Xd;
        System.out.println( Integer.toHexString( i ) );
        System.out.println( i );
        // d
        // 13

        // A~F以外の文字を使用することはできません。
        // ※コンパイルエラーの例
        // i = 0xG;
        // ※エラーメッセージ
        // 16 進数の数値リテラルが無効です
        // ※コンパイルエラーの例ここまで

        // 「0x」だけでもコンパイルエラーです。
        // ※コンパイルエラーの例
        // i = 0x;
        // ※エラーメッセージ
        // 16 進数の数値リテラルが無効です
        // ※コンパイルエラーの例ここまで

        // 10進数表記で格納しても、16進数表記で格納しても、
        // 内部的には2進数で格納されています。
        i = 10;
        System.out.println( getIntBit( i ) );
        i = 0xA;
        System.out.println( getIntBit( i ) );
        // 00000000000000000000000000001010
        // 00000000000000000000000000001010

        // 16進数表記で文字列化したい場合には
        // IntegerクラスのtoHexString()メソッドを使用します。
        String hex = Integer.toHexString( i );
        System.out.println( hex );
        // a
    }

    /**
     * int型変数の整数値をビット形式で返します。
     */
    private static String getIntBit( int i )
    {
        // int型変数をビット形式で文字列化します。
        String source = Integer.toBinaryString( i );
        // 左0埋めします。
        StringBuffer strbuf = new StringBuffer();
        forint iF1 = source.length(); iF1 < 32; ++iF1 )
        {
            strbuf.append( "0" );
        }
        strbuf.append( source );

        return strbuf.toString();
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // 整数リテラルを16進数で表記するときには、頭に0xを付けます。
        int i = 0xA;
        System.out.println( Integer.toHexString( i ) );
        System.out.println( i );
        // a
        // 10

        // A~Fは小文字のa~fでも使えます。
        i = 0xc;
        System.out.println( Integer.toHexString( i ) );
        System.out.println( i );
        // c
        // 12

        // 0xの代わりに0XでもOK。
        i = 0Xd;
        System.out.println( Integer.toHexString( i ) );
        System.out.println( i );
        // d
        // 13

        // A~F以外の文字を使用することはできません。
        // ※コンパイルエラーの例
        // i = 0xG;
        // ※エラーメッセージ
        // 16 進数の数値リテラルが無効です
        // ※コンパイルエラーの例ここまで

        // 「0x」だけでもコンパイルエラーです。
        // ※コンパイルエラーの例
        // i = 0x;
        // ※エラーメッセージ
        // 16 進数の数値リテラルが無効です
        // ※コンパイルエラーの例ここまで

        // 10進数表記で格納しても、16進数表記で格納しても、
        // 内部的には2進数で格納されています。
        i = 10;
        System.out.println( getIntBit( i ) );
        i = 0xA;
        System.out.println( getIntBit( i ) );
        // 00000000000000000000000000001010
        // 00000000000000000000000000001010

        // 16進数表記で文字列化したい場合には
        // IntegerクラスのtoHexString()メソッドを使用します。
        String hex = Integer.toHexString( i );
        System.out.println( hex );
        // a
    }

    /**
     * int型変数の整数値をビット形式で返します。
     */
    private static String getIntBit( int i )
    {
        // int型変数をビット形式で文字列化します。
        String source = Integer.toBinaryString( i );
        // 左0埋めします。
        StringBuffer strbuf = new StringBuffer();
        for( int iF1 = source.length(); iF1 < 32; ++iF1 )
        {
            strbuf.append( "0" );
        }
        strbuf.append( source );

        return strbuf.toString();
    }
}

この単語を含むページ

「みだし」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2010/04/22
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。