喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 帮助

RSS 订阅当前论坛  

喜悦证交所已经关闭

上一主题 下一主题
     
标题: 关于处理二进制文件的问题,请高手来救呀  
 
jack1582 (jack1582)
新手上路
Rank: 1
一般会员



UID 28155
精华 0
积分 49
帖子 48
金钱 49 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2004-4-28
状态 离线
[广告]: q m
关于处理二进制文件的问题,请高手来救呀

我在处理一个编码问题的时候涉及到对文件二进制位的操作,但查了好多资料也找不到相关的位操作的函数,只是有一些叫“字段结构”,二进制文件块操作,但都不是我想要的呀,各位请帮忙呀?
比如,我想把一个ascii码文件里对应的8bit一组的编码通过哈夫曼编码改成变长的编码以实现压缩,我该怎么做呢?
这样比方吧:假设文件a.txt里有xyz三个字符,假设对应二进制为00000000,00000001,00000011(注:逗号是为方便看外加的),现在我要让它变成0,01,011。现在问题出来了,目前我所知道的函数都不能从0,1的级别上来读文件,一读就读至少8个bit,但我就想,这样我用新编码写文件时该怎么办喔?
请高手赐教啊!!!!!等
2005-7-10 06:39 PM#1
查看资料  发短消息  顶部
 
yes22 (yes22)
高级会员
Rank: 4
资深会员



UID 18719
精华 0
积分 931
帖子 931
金钱 931 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2003-3-5
状态 离线
[推荐阅读] 这个算法怎么做?
用open($filename,"rb+)可以读入2进制吧[我没实践过]

如果是8bit,你可以用0x1和他进行&运算,通过循环移位可以得到所有位的值.
2005-7-10 09:05 PM#2
查看资料  访问主页  发短消息  顶部
 
sanders_yao
版主
Rank: 7Rank: 7Rank: 7
or2 =333


UID 30286
精华 0
积分 11755
帖子 4926
金钱 11752 喜悦币
威望 0
人脉 3
阅读权限 100
注册 2004-7-23
来自 北京 菜户营
状态 在线
[推荐阅读] j急请帮我写个正则表达式,谢谢
用C的话

我用fread(void * buffer,size_t size,size_t count, FILE * stream);试一下

size的单位是byte,我试了一下没有成功

fread(buffer,1,1024, fp);之后

使用printf("\n%d",buffer)将buffer数组中的值都显示出来后

都不是2进制的

不知道错在哪里

望高手指点




最近写的一些代码都会在以下地址发布,有兴趣的来批:
http://www.phpx.com/happy/thread-131368-1-1.html
2005-7-16 06:03 PM#3
查看资料  Blog  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.583421 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP