加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

将C字符串转换为二进制表示

发布时间:2020-12-16 10:29:08 所属栏目:百科 来源:网络整理
导读:在ANSI C中,我们如何将字符串转换为二进制字节数组? 所有的谷歌搜索和搜索给了我C和其他人的答案,而不是C. 我的一个想法是将字符串转换为ASCII,然后将每个ASCII值转换为二进制. (呃!)我知道这是最愚蠢的想法,但我不确定任何其他选择. 我听说过Java中的编码
在ANSI C中,我们如何将字符串转换为二进制字节数组?
所有的谷歌搜索和搜索给了我C和其他人的答案,而不是C.

我的一个想法是将字符串转换为ASCII,然后将每个ASCII值转换为二进制. (呃!)我知道这是最愚蠢的想法,但我不确定任何其他选择.

我听说过Java中的编码功能.我不确定这是否符合相同的目的,可以采用C.

string = "Hello"
bytearr[] = 10100101... some byte array..

如果有人可以对此有所了解,那就太好了.

谢谢!

解决方法

或者你的意思是如何将C字符串转换为二进制表示?

这是一个可以将字符串转换为二进制表示的解决方案.可以很容易地将其更改为将二进制字符串保存为字符串数组.

#include <stdio.h>

int main(int argc,char *argv[])
{
    if(argv[1] == NULL) return 0; /* no input string */

    char *ptr = argv[1];
    int i;

    for(; *ptr != 0; ++ptr)
    {
        printf("%c => ",*ptr);

        /* perform bitwise AND for every bit of the character */
        for(i = 7; i >= 0; --i) 
            (*ptr & 1 << i) ? putchar('1') : putchar('0');

        putchar('n');
    }

    return 0;
}

示例输入&输出:

./ascii2bin你好

h => 01101000
e => 01100101
l => 01101100
l => 01101100
o => 01101111

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读