C语言如何将一个字符串“FF”每两位强制转换成16进制?是强制转换哈,也就是原先是“FF”转换后是0xFF

C语言如何将一个字符串“FF”每两位强制转换成16进制?是强制转换哈,也就是原先是“FF”转换后是0xFF
我这是智能小车上位机程序的控制指令,比如说往前运动,发给单片机FF000300FF,是连续16进制的,我现在做个网页版的上位机程序,网页网址里貌似只能传递"FF000300FF"字符串,所以我才想找个方法,将字符串转成0XFF,0X00,0X30,0X00,0XFF处理,这样做主要为了两个上位机程序,我用同一套下位机程序处理

第1个回答  推荐于2018-04-24
写一个转换函数,不就行了,有点麻烦,但也不是不能实现,你可以每次读取两个字节,把字节的值按如下操作:
如果它的值小于0x39H(数字9的Ascii码),就减去0x30H。否则(减去0X40H + 9)(必须是大写字母,也可以判断是小写字母60H)
第一字节*16+第二字节,这不就转成了十六进制了。
第2个回答  2013-04-12
#include "stdio.h"
int main()
{
int a;
scanf("%x",&a);
printf("%#X",a);
getch();
return 0;
}

除非你把 f f 输入到 stdin 或其他文件中,然后用格式输入才能把字符流转为16进制数。本回答被提问者和网友采纳
第3个回答  2013-04-12
你转换16进制前的数值的FF进制是多少啊?
第4个回答  2013-04-12
晕死 谁说只能传字符串的? 麻不麻烦啊追问

我找到个方法,不知道是不是,网页里传输ÿ就是16进制的FF,�代表16进制的0,我试过了,这两个字符放网页ÿ能显示一个符号,但�本身是NUL不显示的,所以网页中显示�,这里的ÿ本来是& #255

相似回答