java i/o 文件流写入文件问题 20C

大家好,请教一个问题:
现在想把许多整数(0-1024) 按照每个整数占12bit存入到文件中去.该如何去做.以及如何读取出来.
谢谢

4个回答

其实这个类似于一个加密解密的过程 可以先把每个整数加密(变成字节然后只取右边12位,注意这里能表示的最大整数是2^11-1)以字符串的形式存入文件
然后取出来左边补全0 变成整数即可

因为内存总线是按照32bit的倍数读取的,所以你表面上省了一点空间,但是这么做非常低效。
非要做也可以,每个整数有两个可能,就是0偏移开头+4字节以及4字节开头+一个字节
通过位移运算可以得到整数。不过效率很低。

就是0偏移开头+4字节以及4字节开头+一个字节
->
就是0偏移开头+4位以及4位开头+一个字节

事实上,编译器使用所谓“对齐”的方式,通过牺牲掉一些内存,来换取性能,所以你的想法完全是反其道而行之的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐