我有一个巨大的“二进制”字符串,如:1110 0010 1000 1111 0000 1100 1010 0111.... 它的长度是4的倍数,可以达到500,000。我还有一个相应的数组:{14, 2, 8, 15, 0, 12, 10, 7, ...} (数组中的每个数字对应于字符串中的4位)。给定这个字符串、这个数组和一个数字N,我需要计算以下子字符串string.substr(4*N, 4),即:当N=0时结果应为1110,当N=1时结果应为0010。我需要多次执行此任务,我的问题是计算此子字符串的最快方法是什么?一种方法是直接计算子字符串:string.substr(4*N, 4)。恐怕这种方法对于如此庞大的字符串来说效率不高。另一种方法是使用array[N].toString(2),然后根据需要用零包装结果。我不确定这样做有多快。也许你有其他想法?