演算子

省略

int apple=0;
apple=apple+2;
apple=apple-3;
apple=apple*5;
apple=apple/7;
apple=apple%11;

上の式のように自分自身に対する計算は,短く書くことができます.

int apple=0;
apple+=2;
apple-=3;
apple*=5;
apple/=7;
apple%=11;

また,1を足すまたは引く場合はさらに短く書くことができます.

int apple=0;
apple++;//apple=apple+1と同じ
apple--;//apple=apple-1と同じ

++を先に書くこともできます.これらは挙動が違います.

int a=0;
print(a++);
print(a);
a=0;
print(++a);
print(a);

bit演算子

bitにかかわる演算子です.

すること演算子aの値
AND&a=1&31
OR```a=1
XOR^a=1^32
左にビットシフト<<a=1<<38
右にビットシフト>>a=4>>12

例えば,変数aの2ビット目(一番右を0ビット目とする)が1立っているかどうか(1であるか)を確かめるには,

if((a&(1<<2))!=0)print("aの2ビット目は立っています");

で調べることができます.

応用すると,部分集合が全列挙できます.

int a[]={0,1,2,3,4};
int size=5;

for(int i=0;i<(1<<size);i++){
  for(int k=0;k<size;k++){
    if((i&(1<<k))!=0){
      print(a[k]);
    }
  }
  print("\n");
}