| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 903 人关注过本帖
标题:把文件的二进制代码保存出来
只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用zuifei07在2014-3-1 22:13:16的发言:

看不明白什么意思。。。求解释原理。。

source %2+0x30;
dec2yyy(ch & 0xff ,&buf[0]);
这两句。。。第一个后面的+0x30是什么意思?
第二个的ch & 0xff 呢?


还有歌问题。。
我自己写的这个。。查看十六进制的。。
#include"stdio.h"
 

void main(void)
{
    FILE *fp;
    char str[64],str2[128];
    fp=fopen("NOTEPAD.EXE","rb");
    fread(str,sizeof(char),64,fp);
    printf("\n#######%s\n## 十进制有符号##%d\n",str,str);
    printf("\n#######%s\n## 十进制无符号###%i\n",str,str);
    printf("\n#######%s\n## 八进制无符号###%o\n",str,str);
    printf("\n#######%s\n## 十六进制小写###%x\n",str,str);
    getchar();
    sprintf(str2,"%x",str);
    printf("str2的值是:%s",str2);
    getchar();

}



为什么输出转换后的值还原后不和读取的字符内容一样呢?
我简单的写了一个DEMO  你看一下 你的处理方式不对
程序代码:
#include <stdio.h>

int main()
{
    FILE *fp;
    char str[64]={'\0'};
    fp=fopen("notepad.exe","rb");
    fread(str,sizeof(char),64,fp);
    int j=0;
    for(int i=0;i<64;i++)
    {
        printf(" %02X ",str[i] & 0xff);
        j++;
        if(j==8) { j=0;printf("\n"); }
    }
    fclose(fp);
    return 0;
}


[ 本帖最后由 wp231957 于 2014-3-1 22:48 编辑 ]

DO IT YOURSELF !
2014-03-01 22:42
zuifei07
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2014-2-5
收藏
得分:0 
额。。。貌似太深奥了。。。
能不能推荐相关的书籍。。学习下知识。。。
还有。。

怎么把
00101111  00101111  00100000  01110100  00110101  00101110  01100011  01110000
转换成原来的字符的?
source %2-0x30?还是怎么弄?
同求算法~
2014-03-01 22:52
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
我不是写了一个10进制转二进制的函数吗,转换回来的话  也需要再写一个反向操作的函数  要是不写单独的函数 代码可读性就太差了

DO IT YOURSELF !
2014-03-01 22:54
zuifei07
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2014-2-5
收藏
得分:0 
刚刚搜了下。。
那个&是与运算符。。。

可是不明白的是。。ch & 0xff
为什么是0xff呢?
求推荐相关资料。。
资料。。
2014-03-01 23:05
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用zuifei07在2014-3-1 23:05:33的发言:

刚刚搜了下。。
那个&是与运算符。。。

可是不明白的是。。ch & 0xff
为什么是0xff呢?
求推荐相关资料。。
资料。。
呵呵,这个是我经过实际测算推出来的  这个原理我不是很清楚的

DO IT YOURSELF !
2014-03-01 23:08
zuifei07
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2014-2-5
收藏
得分:0 
好吧。。
多谢版主。。
2014-03-01 23:34
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
关于这个课题  如果有不明白的可以继续探讨

DO IT YOURSELF !
2014-03-01 23:36
快速回复:把文件的二进制代码保存出来
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017305 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved