| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 428 人关注过本帖
标题:字符串转换问题
只看楼主 加入收藏
习惯被动
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:139
专家分:144
注 册:2012-3-5
结帖率:84.62%
收藏
已结贴  问题点数:20 回复次数:9 
字符串转换问题
怎么把字符串转换成2进制代码?例如吧A转换成1000100,要求对汉字也可以哦。而且是一大串字符转换。本人使用的是vc++6.0编译器。
搜索更多相关主题的帖子: 而且 编译器 字符串 汉字 
2012-03-09 18:45
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:20 
程序代码:
#include <string>
#include <iostream>
using namespace std;

int main() {
    string str;
    char ch;
    cin >> str;
    string::iterator iter = str.begin();
    while (iter != str.end()) {
        ch = *iter++;
        for (int i = 0; i < 8; ++i)
            cout << ((ch >> i) & 1);
    }
}

My life is brilliant
2012-03-09 20:11
习惯被动
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:139
专家分:144
注 册:2012-3-5
收藏
得分:0 
谢谢,
程序代码:
 string::iterator iter = str.begin();
    while (iter != str.end()) {
        ch = *iter++;
        for (int i = 0; i < 8; ++i)
            cout << ((ch >> i) & 1);
    }
这部分能不能给些注释?
2012-03-09 23:39
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
以下是引用习惯被动在2012-3-9 23:39:34的发言:

谢谢, string::iterator iter = str.begin();
    while (iter != str.end()) {
        ch = *iter++;
        for (int i = 0; i < 8; ++i)
            cout << ((ch >> i) & 1);
    }
这部分能不能给些注释?

依次检测这个字符串中的每一个字符,然后吧每个字符的二进制位打印出来。

My life is brilliant
2012-03-10 10:40
习惯被动
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:139
专家分:144
注 册:2012-3-5
收藏
得分:0 
回复 4楼 lz1091914999
谢谢,基本知道是怎么回事了。请问那个程序涉及那方面的内容,我想看些书多了解一下。
2012-03-10 13:12
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
字符串加位运算

My life is brilliant
2012-03-10 14:02
习惯被动
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:139
专家分:144
注 册:2012-3-5
收藏
得分:0 
回复 6楼 lz1091914999
谢谢。
2012-03-10 19:24
习惯被动
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:139
专家分:144
注 册:2012-3-5
收藏
得分:0 
回复 6楼 lz1091914999
追问一个:为什么把那些字符串写入到文件会出现乱码的?
程序代码:
#include <string>
#include <iostream>
using namespace std;

int main()

 {
    string str;
    FILE *fp;
    char ch;
    if((fp=fopen("file.txt","wb+"))==NULL)
    {
        cout<<"can not open this file.\n";
        return 0;
    }
    cin >> str;
    string::iterator iter = str.begin();
    while (iter != str.end()) {
        ch = *iter++;
        for (int i = 0; i < 8; ++i)
                fputc(((ch >> i) & 1),fp);
    }
    fclose(fp);
}
要怎么改才能吧那些2进制码写到想要的文件中呢?
2012-03-17 13:38
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
1、fp=fopen("file.txt","w")
2、fputc(((ch >> i) & 1) + '0', fp); 或 fprintf(fp, "%d", ((ch >> i) & 1);

My life is brilliant
2012-03-17 15:58
习惯被动
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:139
专家分:144
注 册:2012-3-5
收藏
得分:0 
第一种写入不可以第二种可以谢谢啦。
2012-03-17 23:43
快速回复:字符串转换问题
数据加载中...
 
   



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

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