y****t 发帖数: 23 | 1 读一个binary文件,里面都是binary数字
写一个程序就是算所有数字的合(sum)
限制是 sum 只能有 64-bit bits of precision.
每一个数字是little-endian 32-bit unsigned integers
里面的数字可能有超过1千万个
一定要把里面数字读出来,转成10进制吗?
有没有可能直接用 bit shift之类的,直接在binary数字上互相加?
最快的方法是什么?
都说说想法吧 |
g****y 发帖数: 240 | 2 用一个长度为64的array来记录每一位上有多少个1?
【在 y****t 的大作中提到】 : 读一个binary文件,里面都是binary数字 : 写一个程序就是算所有数字的合(sum) : 限制是 sum 只能有 64-bit bits of precision. : 每一个数字是little-endian 32-bit unsigned integers : 里面的数字可能有超过1千万个 : 一定要把里面数字读出来,转成10进制吗? : 有没有可能直接用 bit shift之类的,直接在binary数字上互相加? : 最快的方法是什么? : 都说说想法吧
|
l*********8 发帖数: 4642 | 3 直接读出每个32-bit unsigned int,结果加到64-bit unsigned int里面就可以了,又
不会溢出。
【在 y****t 的大作中提到】 : 读一个binary文件,里面都是binary数字 : 写一个程序就是算所有数字的合(sum) : 限制是 sum 只能有 64-bit bits of precision. : 每一个数字是little-endian 32-bit unsigned integers : 里面的数字可能有超过1千万个 : 一定要把里面数字读出来,转成10进制吗? : 有没有可能直接用 bit shift之类的,直接在binary数字上互相加? : 最快的方法是什么? : 都说说想法吧
|