JavaA2Z

KAB-studio > プログラミング > JavaA2Z > ~演算子とは

~演算子

日本語 ビット反転演算子
英語 tilde operator
ふりがな にょろえんざんし
フリガナ ニョロエンザンシ

解説

ビットを反転する演算子
単項演算子のひとつ。ビット操作をするための演算子
~整数変数」という形式で、「整数変数」の値の各ビットが、0であれば1に、1であれば0に変換して返す。返すは「整数変数」と同じとなる。また「整数変数」に格納されている値は変化しない。
他のビット操作演算子と同じく、整数にしか使用できない。

参考サイト

  • (参考サイトはありません)

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

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

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        int i = 1;
        System.out.println( i );
        // 1
        // 1のビット。
        String bits = getIntBit( i );
        System.out.println( bits );
        // 00000000000000000000000000000001

        // ~演算子でビットを反転します。
        bits = getIntBit( ~i );
        System.out.println( bits );
        // 11111111111111111111111111111110

        // 対象の変数の値は変わりません。
        System.out.println( i );
        // 1

        // 整数値型以外には使用できません。
        // System.out.println( ~2.0 );
        // コンパイルエラー:
        // 演算子 ~ は引き数の型 double で未定義です。
    }

    /**
    *   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 )
    {
        int i = 1;
        System.out.println( i );
        // 1
        // 1のビット。
        String bits = getIntBit( i );
        System.out.println( bits );
        // 00000000000000000000000000000001

        // ~演算子でビットを反転します。
        bits = getIntBit( ~i );
        System.out.println( bits );
        // 11111111111111111111111111111110

        // 対象の変数の値は変わりません。
        System.out.println( i );
        // 1

        // 整数値型以外には使用できません。
        // System.out.println( ~2.0 );
        // コンパイルエラー:
        // 演算子 ~ は引き数の型 double で未定義です。
    }

    /**
    *   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:2005/06/07
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。