我有一个根节点(S1),其范围值表示为1073741824(最小),2147483648(最大)。我将该范围划分为代表4个新生成的节点的4个相等范围。子节点的范围分别为(S2)1073741824(最小),1342177280(最大);(S3)1342177280(最小),1610612736(最大) ; (S4)1610612736(最小值),1879048192(最大值);(S5)1879048192(min),2147483648(最大值)。所有数字的长度均为32位。附图可以更清楚地说明:
(S1) 1073741824 (min),2147483648 (max)
(S2) 1073741824 (min),1342177280 (max)
(S3) 1342177280 (min),1610612736 (max)
(S4) 1610612736 (min),1879048192 (max)
(S5) 1879048192 (min),2147483648 (max)
[Spawning 4 nodes from one node][1]
在二进制中,边界是
S1 min = S2 min = 1073741824 = 01000000000000000000000000000000_bin
S2 max = S3 min = 1342177280 = 01010000000000000000000000000000_bin
S3 max = S4 min = 1610612736 = 01100000000000000000000000000000_bin
S4 max = S5 min = 1879048192 = 01110000000000000000000000000000_bin
S5 max = S1 max = 2147483648 = 10000000000000000000000000000000_bin
因此,如果数字以二进制表示,则有什么方法可以找到将原始范围(1073741824(最小值),2147483648(最大值))分为4个相等的位位置(从第0位位置到第31位位置)大小的团体?有什么算法可以做到吗? 例如我想找到'i','j'位的位置(0