一个块的伙伴究竟是位于该块的前面还是后面,取决于oder的值:
buddy_idx = page_idx ^ (1 << order); (异或的实质是0变1, 1变0)
如果page_idx的值大于1<<order, 则其伙伴块的第一个页框号在其之后,反之则在其之前,比如:
page_idx = 32, order = 2时, buddy_idx = 36
order = 3时, buddy_idx = 40
order = 4时, buddy_idx = 48
order = 5时, buddy_idx = 0