Binary 0xaaaa表示偶数位置设置为1的二进制,这只是巧合吗

Binary 0xaaaa表示偶数位置设置为1的二进制,这只是巧合吗,binary,hex,Binary,Hex,十六进制0xaaaa表示偶数位置设置为1的二进制,这只是巧合吗 类似地,像0x5555这样优雅的东西表示二进制,奇数位置设置为1?5的二进制表示是0101。所以0x5555有16个1,16个0,1,0的位置是交替的。类似地,0X33333333有16个1、16个0和2个连续的1,2个连续的0交替使用。这些数字本身没有什么特别之处,只是它们对应的位模式很有用 我认为这里的关键实现是,从你的头顶上很容易找到一个紧凑的十六进制数来表示任何更长的位模式(如果重复的话甚至更容易) 为什么??因为从十六进制

十六进制0xaaaa表示偶数位置设置为1的二进制,这只是巧合吗


类似地,像0x5555这样优雅的东西表示二进制,奇数位置设置为1?

5的二进制表示是0101。所以0x5555有16个1,16个0,1,0的位置是交替的。类似地,0X33333333有16个1、16个0和2个连续的1,2个连续的0交替使用。

这些数字本身没有什么特别之处,只是它们对应的位模式很有用

我认为这里的关键实现是,从你的头顶上很容易找到一个紧凑的十六进制数来表示任何更长的位模式(如果重复的话甚至更容易)

为什么??因为从十六进制转换为二进制或从二进制转换为十六进制很简单-模式的每四位可以用一个十六进制数字整齐地表示:

假设我想要这个16位掩码:
11101101110
。这是
1110
重复了4次,所以它只是一些十六进制数字,4次。由于
1110
是十进制的14,这将是“E”,所以我们的掩码将是:
0xEEEE