在 ANSI C 中,我们如何将字符串转换为二进制字节数组?
所有的谷歌搜索和搜索都给了我 C++ 和其他而不是 C 的答案。
我的一个想法是将字符串转换为 ASCII,然后将每个 ASCII 值转换为其二进制。 (呃!)我知道这是最愚蠢的想法,但我不确定还有其他选择。
我听说过Java中的abt编码功能。我不确定这是否适合相同的目的并且可以被采用到 C 中。
string = "Hello"
bytearr[] = 10100101... some byte array..
如果有人能对此有所启发,那就太好了。
Thanks!
或者您的意思是如何将 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 hello
h => 01101000
e => 01100101
l => 01101100
l => 01101100
o => 01101111
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)