我想将 16 字节的 ascii
字符串转换为 16 字节的十六进制整数。请帮忙。这是我的代码:
uint stringToByteArray(char *str,uint **array)
{
uint i, len=strlen(str) >> 1;
*array=(uint *)malloc(len*sizeof(uint));
//Conversion of str (string) into *array (hexadecimal)
return len;
}
最佳答案
如果您正在寻找以十六进制形式打印整数,这可能会有所帮助:
#include <stdio.h>
int main() {
/* define ASCII string */
/* note that char is an integer number type */
char s[] = "Hello World";
/* iterate buffer */
char *p;
for (p = s; p != s+sizeof(s); p++) {
/* print each integer in its hex representation */
printf("%02X", (unsigned char)(*p));
}
printf("\n");
return 0;
}
如果您只想将 char
数组转换为 1 字节整数数组,那么您就已经完成了。 char
已经是整数类型。您可以使用已有的缓冲区,或使用 malloc
/memcpy
将数据复制到新缓冲区。
您可能想查看 stdint.h
中定义的显式宽度整数类型,例如,uint8_t
表示一字节无符号整数。
关于c - ASCII 字符串到十六进制整数的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17263395/