2 kkk 19 kkk_19 于 2016.02.24 23:43 提问

从二进制文件中读取字符并逆转 当文件字节很大时如何提高执行效率

题目:编写程序从一个二进制文件中读入若干个字节,将每一个字节的8位逆转后,按字节的输入顺序输出到另一个二进制文件中。这里的逆转是指:当unsigned char k=0xAC(二进制值为:10101100),逆转后k为:00110101(十六进制为:0x35)。并考虑当文件中的字节数量很大时(比如,几百MB,GB甚至TB),说明如何编写此程序,执行效率最高。

我的做法就是读入单个字符,通过按位与、或等操作实现逆转,然后输出到文件中。但是不太明白如何提高执行效率,希望各位高手支个招~

2个回答

caozhy
caozhy   Ds   Rxr 2016.02.24 23:47
已采纳

查表,因为一个字节的逆转可以放在一个256字节的表中。

henuyx
henuyx   2016.02.25 10:27

想快当然是多开几个进程,或者多台机子共同运行了。每个进程/线程分一定数量的数据,然后同时操作。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!