| |
|
|
|
|
| |
 |
シフト演算子編 |
 |
◆演算子とは? |
| プログラミングにおいて、演算方法を指示する記号のことです。演算の対象となる値や変数はオペランドといい、「x + 100」の場合「+」が演算子で、「x」、「100」がオペランドです。 |
| ◆ここでの環境 |
| OS |
Windows XP |
| J2SE SDK |
1.4.2_04 |
|
|
|
|
| ◆シフト演算子 |
| ビットを直接操作するためにシフト演算子を使用することができます。シフトとはビットを右または左にずらす操作のことです。 |
| シフト演算子 |
使用例 |
説明 |
| << |
x <<
a |
xのビットをaビットだけ左にシフトさせる。右端には0が入る。一般に、nビット左にシフトすると元の数に2nかけた値になります。
|
| >> |
x >> a |
xのビットをaビットだけ右にシフトさせる。左端には最上位ビットと同じ値が入る。一般に、nビット右にシフトする元の数を2nで割った値になります。(算術右シフト) |
| >>> |
x >>> a |
xのビットをaビットだけ右にシフトさせる。左端には0が入る。左端に0が入るので符号の区別がない演算に使用します。(論理右シフト) |
|
| [例] int型の値2を5ビット左にシフトする場合( 2 << 5 ) |
| |
10進数 |
2進数 |
| 演算前 |
2 |
00000000 00000000 00000000 00000010 |
| 演算後 |
2 × 25 = 64 |
00000000 00000000 00000000 01000000 |
|
| [例] int型の値-64を5ビット右にシフトする場合( -64 >> 5 ) |
| |
10進数 |
2進数 |
| 演算前 |
-64 |
00000000 00000000 00000000 00000010 |
| 演算後 |
-64 ÷ 25 = -2 |
00000000 00000000 00000000 01000000 |
|
| |
| ■サンプルプログラム |
| Enzanshi8.java(ここからダウンロード) |
public class Enzanshi8 {
public static void main(String[] args) {
byte b1 = 3; // ビット表現 00000011
int i1 = b1 << 1; // i1のビット表現 00000000 00000000 00000000 00000110
int i2 = b1 << 3; // i1のビット表現 00000000 00000000 00000000 00011000
System.out.println("i1の値は " + i1 + " です。");
System.out.println("i2の値は " + i2 + " です。");
}
} |
|
| ■コンパイルと実行 |
| コマンドプロンプト |
C:\JavaHello\Basic\Operator>javac
Enzanshi8.java
C:\JavaHello\Basic\Operator>java
Enzanshi8
i1の値は 6 です。
i2の値は 24 です。
C:\JavaHello\Basic\Operator> |
|
| おおお!シフト演算ができましたね! |
|
|
■書籍 Java関連の書籍 |
|
|
| |
|
| |
| ツールの部屋
- Java関連の書籍
- デザインパターン - 情報交換掲示板
- HOME |
|
|