Mav*_*ugu 3 c string bytearray
在ANSI C中,我们如何将字符串转换为二进制字节数组?所有的谷歌搜索和搜索给了我C++和其他人的答案,而不是C.
我的一个想法是将字符串转换为ASCII,然后将每个ASCII值转换为二进制.(呃!)我知道这是最愚蠢的想法,但我不确定任何其他选择.
我听说过Java中的编码功能.我不确定这是否符合相同的目的,可以采用C.
string = "Hello"
bytearr[] = 10100101... some byte array..
Run Code Online (Sandbox Code Playgroud)
如果有人可以对此有所了解,那就太好了.
谢谢!
或者你的意思是如何将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;
}
Run Code Online (Sandbox Code Playgroud)
示例输入和输出:
./ascii2bin hello
h => 01101000
e => 01100101
l => 01101100
l => 01101100
o => 01101111
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25018 次 |
| 最近记录: |