将字节数组元素转换为二进制的最佳方法

时间:2015-09-08 17:06:10

标签: c# arrays optimization type-conversion

我正在制作一个程序,我必须阅读约。单个文件中的4,140,​​000个字节4mb(每天要读取数百个文件,我将其存储在byte[]数组中)。这些字节中的每一个都必须转换为二进制,以便我可以在位级访问它们。目前,每次程序需要访问一个字节时,它都会调用一个函数,通过执行以下行将arr[byteIndex]转换为二进制字符串:

return binary.Append(Convert.ToString(arr[byteIndex], 2).PadLeft(8, '0'));

该功能被称为数百万次。我想让程序运行得更快。什么是我可以用于时间优化的最佳方法/程序。

1 个答案:

答案 0 :(得分:1)

不是直接处理字符串表示,而是直接处理位。

如果您的数组值为5A,则可以执行第4位测试:

if ((arr[byteIndex] & (1 << 4)) != 0) { }

阐释:

arr[byteIndex] = 01011010
1<<4           = 00010000
                 -------- bitwise &
result         = 00010000
相关问题