~演算子
| 日本語 | ビット反転演算子 |
| 英語 | tilde operator |
| ふりがな | にょろえんざんし |
| フリガナ | ニョロエンザンシ |
ビットを反転する演算子。
単項演算子のひとつ。ビット操作をするための演算子。
「~整数値型変数」という形式で、「整数値型変数」の値の各ビットが、0であれば1に、1であれば0に変換して返す。返す型は「整数値型変数」と同じ型となる。また「整数値型変数」に格納されている値は変化しない。
他のビット操作演算子と同じく、整数値型にしか使用できない。
単項演算子のひとつ。ビット操作をするための演算子。
「~整数値型変数」という形式で、「整数値型変数」の値の各ビットが、0であれば1に、1であれば0に変換して返す。返す型は「整数値型変数」と同じ型となる。また「整数値型変数」に格納されている値は変化しない。
他のビット操作演算子と同じく、整数値型にしか使用できない。
参考サイト
- (参考サイトはありません)
// 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();
}
}
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();
}
}
// 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();
}
}




