ビットを操作する、シフト演算子 Part2
今回はJavaのシフト演算子の続きです、やるのは
「符号が付かないシフト演算子」です、まぁ「とにかく0で埋める」としか俺は理解してない。
まずはソースコードから
class java_study_13{
public static void main(String args[]){
//変数の宣言
int s_bit_b = 41 ;
int s_bit_a ;
//処理
s_bit_a = s_bit_b >>> 1 ;
System.out.println(s_bit_a) ;
}
}
そして、ビット演算子の頃から必ず出ている表です。
* | 32 | 16 | 8 | 4 | 2 | 1 |
41 | 1 | 0 | 1 | 0 | 0 | 1 |
x | 0 | 1 | 0 | 1 | 0 | 0 |
まずはソースコードから見ようか、//処理の下のすぐの
s_bit_a = s_bit_b >>> 1
だ、これがシフト演算子(符号付かず)だ。
今回の例は1つ右にずらしている。
次にさっきの表だ、まずは41のところを覚えてほしい。
そして、xのところと比べてほしい。
普通に「>>」ならば
* | 32 | 16 | 8 | 4 | 2 | 1 |
41 | 1 | 0 | 1 | 0 | 0 | 1 |
x | 1 | 1 | 0 | 1 | 0 | 0 |
となってたかもしれないが、こいつは「0で埋める」という特性があるためこうなってしまう。
これでJavaのビット演算子は終了!