<<演算子
日本語 | 左角括弧左角括弧演算子 |
英語 | left angle bracket left angle bracket operator |
ふりがな | ひだりかくかっこひだりかくかっこえんざんし |
フリガナ | ヒダリカクカッコヒダリカクカッコエンザンシ |
ビットを左にずらす演算子。
二項演算子のひとつ。ビットシフト演算子のひとつ、左ビットシフト演算子。
「整数値型変数 << ビット数」という形式で、「ビット数」分だけビットを左にずらすことができる。スペースが空く右端のビットには0が埋められる。ずらした値が戻り値として返るためそれを受け取る。「整数値型変数」には影響しない。
使用できるのは整数値型のみで、浮動小数点型やboolean型、参照型には使用することができない。Javaでは基本的にビット操作は推奨されず、ビットフラグ等に使用するための目的で整数値型のみに許されているためである。
二項演算子のひとつ。ビットシフト演算子のひとつ、左ビットシフト演算子。
「整数値型変数 << ビット数」という形式で、「ビット数」分だけビットを左にずらすことができる。スペースが空く右端のビットには0が埋められる。ずらした値が戻り値として返るためそれを受け取る。「整数値型変数」には影響しない。
使用できるのは整数値型のみで、浮動小数点型やboolean型、参照型には使用することができない。Javaでは基本的にビット操作は推奨されず、ビットフラグ等に使用するための目的で整数値型のみに許されているためである。
参考サイト
- (参考サイトはありません)
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// 9。
long l = 9;
System.out.println( l );
outputLongBit( l );
// 9
// 0000000000000000000000000000000000000000000000000000000000001001
// 左に2ビットシフトします。
l = l << 2;
outputLongBit( l );
// 0000000000000000000000000000000000000000000000000000000000100100
// 使えるのは整数値型のみです。
// 浮動小数点型、boolean型、参照型には使用できません。
double d = 1.0;
// d = d << 2;
// コンパイルエラー:
// 演算子 << は引き数の型 double, int で未定義です。
}
/**
* long型変数をビット形式で出力します。
*/
private static void outputLongBit( long l )
{
// long型変数をビット形式で文字列化します。
String source = Long.toBinaryString( l );
// 左0埋めします。
StringBuffer strbuf = new StringBuffer();
for( int iF1 = source.length(); iF1 < 64; ++iF1 )
{
strbuf.append( "0" );
}
strbuf.append( source );
System.out.println( strbuf.toString() );
}
}
public class Sample
{
public static void main( String[] args )
{
// 9。
long l = 9;
System.out.println( l );
outputLongBit( l );
// 9
// 0000000000000000000000000000000000000000000000000000000000001001
// 左に2ビットシフトします。
l = l << 2;
outputLongBit( l );
// 0000000000000000000000000000000000000000000000000000000000100100
// 使えるのは整数値型のみです。
// 浮動小数点型、boolean型、参照型には使用できません。
double d = 1.0;
// d = d << 2;
// コンパイルエラー:
// 演算子 << は引き数の型 double, int で未定義です。
}
/**
* long型変数をビット形式で出力します。
*/
private static void outputLongBit( long l )
{
// long型変数をビット形式で文字列化します。
String source = Long.toBinaryString( l );
// 左0埋めします。
StringBuffer strbuf = new StringBuffer();
for( int iF1 = source.length(); iF1 < 64; ++iF1 )
{
strbuf.append( "0" );
}
strbuf.append( source );
System.out.println( strbuf.toString() );
}
}
// Sample.java public class Sample { public static void main( String[] args ) { // 9。 long l = 9; System.out.println( l ); outputLongBit( l ); // 9 // 0000000000000000000000000000000000000000000000000000000000001001 // 左に2ビットシフトします。 l = l << 2; outputLongBit( l ); // 0000000000000000000000000000000000000000000000000000000000100100 // 使えるのは整数値型のみです。 // 浮動小数点型、boolean型、参照型には使用できません。 double d = 1.0; // d = d << 2; // コンパイルエラー: // 演算子 << は引き数の型 double, int で未定義です。 } /** * long型変数をビット形式で出力します。 */ private static void outputLongBit( long l ) { // long型変数をビット形式で文字列化します。 String source = Long.toBinaryString( l ); // 左0埋めします。 StringBuffer strbuf = new StringBuffer(); for( int iF1 = source.length(); iF1 < 64; ++iF1 ) { strbuf.append( "0" ); } strbuf.append( source ); System.out.println( strbuf.toString() ); } }