为什么0xff和abcd会截断abcd的一半?

ret*_*n 0 0 math binary hex

我可以理解二进制操作11 & x,例如,如果x = 1011,操作将从x中取出10并且将x保留为11.但是,当涉及到十六进制时,我非常困惑.类似效果背后的数学和推理是0xff & x什么?如果我将它们全部转换为二进制,我只能理解这一点.

jgl*_*uie 6

0xFF & 0xABCD = 0xCD ......为什么?

Because:
A = 1010
B = 1011
C = 1100
D = 1101

F = 1111

So the 0xFF = 0x00FF = 0000 0000 1111 1111
The 0xABCD           = 1010 1011 1100 1101 
                       ------------------- 
0xFF & 0xABCD        = 0000 0000 1100 1101
Run Code Online (Sandbox Code Playgroud)

与大多数事情一样,一旦你使用十六进制一段时间,你将学习一些记住值的技巧.