~演算子
日本語 | ビット反転演算子 |
英語 | 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(); } }