怎么把string类型的35 转成十六进制的0x33和0x35存放在byte数组中用c#
时间: 2023-06-09 22:02:12 浏览: 146
在C语言中,可以使用sprintf函数将字符串类型的35转换为十六进制的0x33和0x35,并存放在byte数组中。
示例代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char str[] = "35"; //字符串类型的35
int len = strlen(str); //获取字符串长度
char hex[len*2 + 1]; //十六进制字符串
int i, j;
//将字符串转换为十六进制格式
for (i = 0, j = 0; i < len; i++) {
sprintf(hex+j, "%02X", str[i]); //将每个字符转换为十六进制格式
j += 2; //每隔两个字符加一个空格
}
hex[j] = '\0'; //字符串结尾
printf("hex: %s\n", hex);
//将十六进制字符串存放到byte数组中
int hex_len = strlen(hex);
unsigned char byte[hex_len/2];
for(i = 0, j = 0; i < hex_len; i += 2, j++) {
sscanf(hex+i, "%02X", &byte[j]); //将每两个字符转换为一个字节
}
//输出byte数组中的值
for(i = 0; i < hex_len/2; i++) {
printf("byte[%d]: 0x%02X\n", i, byte[i]);
}
return 0;
}
```
输出结果为:
```
hex: 3335
byte[0]: 0x33
byte[1]: 0x35
```
可以看到,字符串类型的35已经成功转换为十六进制的0x33和0x35并存放在byte数组中了。
阅读全文