>>917
0x は16進数であることを明示するプレフィックス。
よって、0x1000 とか 0x3EFF はただの数字。

| は論理和をとる演算子。
0x22FF | 0xFF01 == 0xFFFF

buf[10000] と確保したものが、実際に確保されるアドレスは基本的に実行時に決まる。
範囲としては buf の型のサイズ * 10000