首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

inttohex 和 char的有关问题

2012-02-29 
inttohex 和 char的问题char send[7]send[0] 0xAAsend[1] IntToHex(channelId,2)send[2] 0xA5第

inttohex 和 char的问题
char send[7];
  send[0] = 0xAA;
  send[1] = IntToHex(channelId,2);
  send[2] = 0xA5;

第三行出错了,提示不能将ansistring的转换为char
其中channelId为整数,小于40,转换为两位十六进制是够的。
怎么解决呢?或者有没有其它方法把一个整数转换为十六进制再给char[1]呢?

[解决办法]
直接把channelId赋给send[1]就可以了,char,int都是通用的,如有需要在使用的时候再转换成16进制。
[解决办法]
第三行出错了,提示不能将ansistring的转换为char .
用Ansistring.c_str()不是可以转化为char*的吗?
[解决办法]

探讨
不要char *我是要char

回aniven,我是要直接将它转换成16进制再通过串口发送出去。

[解决办法]
IntToHex返回的是一个字符串,不是一个数了,把一个字符串给一个字符变量,肯定会出错。
再说,数字在内存里保存都是二进制形式保存的,即把十六进制的0x0A和十进制的10赋给send[1]都是一样的结果。LZ这样转换也是没有必要。
[解决办法]
直接赋值就可以了,没有影响~
[解决办法]
探讨
  char send[7];
    send[0] = 0xAA;
    send[1] = 12;
    send[2] = 0xA5;
YbCommDevice1->WritePackage(buf,3);
这样没问题?我是按字节发送的啊,它自动会把12当做是一个字节来发送?

热点排行