问题:
char p[]="\xb2"给p赋值之后,p中的值到底是什么?
我动态的得到一个十六进制数之后怎么赋值给一个字符串变量?比如获得的是b2,则char p[]="\xb2",当获得的是e2时,则char p[]="\xe2"
回答:
例1
\x表示你后面的数字是16进制的数字。
char p[]="\xb2"给p赋值之后,p中的值到底是什么?
p中值取决于16进制数字b2换算为10进制后的大小,比如说
b2为31,换算为10进制后为49,即代表数字1。
例2
#define ATE0_CMD "ATE0\x00D\x00A"
\x00D,十六进制的D转换为十进制为13,\x00A对应十进制的10,与ASCII码表对应就知道
\x00D,即CR = carriage = 回车
\x00A,即LF = line feed = 换行
\x00D,即CR = carriage = 回车
\x00A,即LF = line feed = 换行
扩展:
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
所有的转义字符和所对应的意义: