LoginSignup
0
0

整数リテラルの各進数表記と接頭辞の由来

Posted at

整数リテラル(Integer Literals)における接頭辞

【さっそく】

下記のコードについてのコンソール出力値がどうなるのか考えてみましょう。

class Prefixes { 
    public static void main(String[] arg) {
        int x1 = 10; // 10 in decimal
        int x2 = 012; // 10 in octal
        int x3 = 0xA; // 10 in hexdecimal

        System.out.println(x1);
        System.out.println(x2);
        System.out.println(x3);
    }
} 

コンソール出力:

10
10
10   

出力値を見ると、どの変数にも整数として10が格納されていることがわかります。
なぜ初期値の記述が違うにもかかわらず、どの変数も10を格納しているのかというと
変数”x2”、”x3”はそれぞれ8進数、16進数の記述方法で初期化値が渡されているからです。

【Refresher】

int型変数に10進数以外の値を格納する場合の接頭辞についておさらいします。

  • 10進数:接頭辞不要
  • 2進数:扱う2進数の頭に0bを加える
  • 8進数 - 扱う8進数の頭に0を加える
  • 16進数 - 扱う16進数の頭に0xを加える

進数テーブル:

進数 接頭辞
10 なし
2 0b
8 0
16 0x

【Example】

  • 2進数
class BinaryPrefix{ 
    public static void main(String[] arg) {
        int binary1 = 0b10;
        
        System.out.println(binary1);
    }
}

/*
Outputs:
2
*/
  • 8進数:
    8進数表記で8を記述しているためコンパイルエラーとなるコード
class OctalPrefix{ 
    public static void main(String[] arg) {
        int octal1 = 0801; // コンパイルエラー
        
        System.out.println(binary1);
    }
}
  • 16進数:
class HexDecimal{ 
    public static void main(String[] arg) {
        int hexdecimal1 = 0xF;
        
        System.out.println(hexdecimal1);
    }
}

/*
Outputs:
15
*/

【関連英単語】

参考までに
これまで説明してきた接頭辞の由来となるギリシャ語、ラテン語の接頭辞、そしてこれらが使われている英単語を以下のテーブルにまとめましたので興味のある方はご覧ください。

ギリシャ ラテン 意味 英単語例
Mono- uni- 1 monotheism, universe, uniform, unicorn
Di- bi-du- 2 binary, duo
Tri- -tri 3 tripod, triple
Tetra- quadri- quart- 4 quarter
Penta- quin- 5 pentagon, quintet
Hexa- sext- 6 hexagon, sextet
Hepta- septem-, septi- 7 heptagon
Octo- octa-, oct- 8 octagon, octopus
Ennea- novem- 9 novena
Deca- deci-, decem- 10 decimal, decade
Hemi- semi- half hemisphere, semicircle, semifinal
Poly- multi- many polymorphism, polygon, polynomial
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0