洛谷网校 CSP 初赛笔记

位运算

  • & 如果 $x,y$ 的对应位都为 $1$,则结果为 $1$,否则结果为 $0$。
  • | 如果 $x,y$ 的对应位都为 $0$,则结果为 $0$,否则结果为 $1$。
  • ^ 如果 $x,y$ 的对应位不同,则结果为 $1$,否则结果为 $0$。
  • << $x$ 左移 $y$ 位,高位删除,如:$(1010)_{2}\texttt{<<}2=1000$;
  • >> $x$ 右移 $y$ 位,低位删除,如:$(1010)_{2}\texttt{>>}2=0010$;

应用

1
2
3
4
5
n^=1<<x;//反转第x位
n|=1<<x;//将第x位设为1
n&=~(1u<<x)//将第x位设为0 (1u 是无符号数 unsigned 的写法)
int m=n&((1<<x)-1);//取出n的前x个位
int k=(n>>x)&1;//获得n的第x位

优先级表

~><<>>>&>^>|,同级运算从左向右。

如图,是所有运算的优先级表:

优先级表

ASCLL 码

  • $0 \sim 9$ : $48 \sim 57$
  • A $\sim$ Z: $65 \sim 90$
  • a $\sim$ a: $97 \sim 122$
详情

以数字 $0 \sim 9$ 开头的都是数字,例如:$\texttt{0x3f3f3f}$