JavaA2Z

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

short

日本語
英語 short
ふりがな しょーと
フリガナ ショート

解説

プリミティブ型のひとつ。
 
整数値を格納するための
ラッパークラスShortクラス
 
short宣言された変数は、16ビット(2バイト)分のメモリ領域を使用する。
左端のビットは正負のフラグとなり、0がプラス、1がマイナスを表す。
残りの15ビットと合わせて、-32768~32767の整数値を格納することができる(マイナスの場合は2の補数を使用する)。

整数値を扱いたい場合は通常intを使用する。計算目的でshortを使用する機会は少ない。
>>演算子等、一部の演算子はshortintキャストする(数値格上げ変換)ため、素直にintを使用した方がいいだろう。
 
同じ「2バイト整数値」を格納するプリミティブ型charがある。
shortは通常の整数値を格納するために使用し、対してchar文字を表す整数値を格納するために使用する。
short符号付きchar符号なしという大きな違いがある。符号を用いた通常の計算をうため、通常の整数値はshort変数に格納した方がいいだろう。

参考サイト


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

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

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // short型の変数を宣言します。
        short sh;
        // メモリ上に16ビットの領域が確保されました。

        // ここに整数値10000を格納します。
        sh = 10000;
        // それを出力します。
        System.out.println( sh );
        // 10000

        // short型変数に格納された「10000」がどのように
        // ビットとして格納されているか見てみます。
        outputShortBit( sh );
        // 0010011100010000

        // このように、「10000」というshort型整数は、
        // 「0010011100010000」という
        // 「0か1」を16個並べた形で格納されています。

        // 最大値と最小値はShortクラスのstaticフィールド
        // として宣言されているのでそれを使いましょう。
        sh = Short.MAX_VALUE;
        System.out.println( sh );
        outputShortBit( sh );
        // 32767
        // 0111111111111111

        sh = Short.MIN_VALUE;
        System.out.println( sh );
        outputShortBit( sh );
        // -32768
        // 1000000000000000
    }

    /**
     * short型変数の中身をビット形式で出力します。
     */
    private static void outputShortBit( short sh )
    {
        short flag = 1;
        StringBuffer strbuf = new StringBuffer();
        // 全ビットを右からチェックします。
        forint iF1 = 0; iF1 < 16; ++iF1 )
        {
            // 取得した順に出力すると逆順になるので、
            // 取得した値を頭に挿入していきます。
            if( ( sh & flag ) == 0 )
            {
                strbuf.insert( 0, "0" );
            }
            else
            {
                strbuf.insert( 0, "1" );
            }
            // 2倍することでビットシフトします。
            flag *= 2;
            // (<<演算子を使用するとint型にキャスト
            // されるので*演算子を使用しています)
        }
        System.out.println( strbuf );
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // short型の変数を宣言します。
        short sh;
        // メモリ上に16ビットの領域が確保されました。

        // ここに整数値10000を格納します。
        sh = 10000;
        // それを出力します。
        System.out.println( sh );
        // 10000

        // short型変数に格納された「10000」がどのように
        // ビットとして格納されているか見てみます。
        outputShortBit( sh );
        // 0010011100010000

        // このように、「10000」というshort型整数は、
        // 「0010011100010000」という
        // 「0か1」を16個並べた形で格納されています。

        // 最大値と最小値はShortクラスのstaticフィールド
        // として宣言されているのでそれを使いましょう。
        sh = Short.MAX_VALUE;
        System.out.println( sh );
        outputShortBit( sh );
        // 32767
        // 0111111111111111

        sh = Short.MIN_VALUE;
        System.out.println( sh );
        outputShortBit( sh );
        // -32768
        // 1000000000000000
    }

    /**
     * short型変数の中身をビット形式で出力します。
     */
    private static void outputShortBit( short sh )
    {
        short flag = 1;
        StringBuffer strbuf = new StringBuffer();
        // 全ビットを右からチェックします。
        for( int iF1 = 0; iF1 < 16; ++iF1 )
        {
            // 取得した順に出力すると逆順になるので、
            // 取得した値を頭に挿入していきます。
            if( ( sh & flag ) == 0 )
            {
                strbuf.insert( 0, "0" );
            }
            else
            {
                strbuf.insert( 0, "1" );
            }
            // 2倍することでビットシフトします。
            flag *= 2;
            // (<<演算子を使用するとint型にキャスト
            // されるので*演算子を使用しています)
        }
        System.out.println( strbuf );
    }
}

この単語を含むページ

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