c++ builder 串口发送十六进制数
比如我打算发0x55,一个十六进制的55,但是串口的输入输出都是字符串的格式,发送55就是发送ASCLL码的55了,就是3535了,我该怎么转换下呢?比如想发送13971...
比如我打算发0x55,一个十六进制的55,但是串口的输入输出都是字符串的格式,发送55就是发送ASCLL码的55了,就是35 35了,我该怎么转换下呢?比如想发送139712就以十六进制13 97 12的形式发送。。
展开
展开全部
这个不需要特别的来转换,
你可以用“0X”前缀来标示十六进制数,
十进制不需要特别标示,
编译器在编译时会自动转换成十六进制来执行。
如果害怕自己混淆,
用“char”类型来定义字符(串),
编译时会自动对照ASCII码表进行转换为十六进制。
只是你在另一边的接收要考虑是否有转换的问题。
你可以用“0X”前缀来标示十六进制数,
十进制不需要特别标示,
编译器在编译时会自动转换成十六进制来执行。
如果害怕自己混淆,
用“char”类型来定义字符(串),
编译时会自动对照ASCII码表进行转换为十六进制。
只是你在另一边的接收要考虑是否有转换的问题。
更多追问追答
追问
您的意思是以“0x55”的形式发?因为我都是以字符串的形式发的啊,这样那就直接发的是30 78 35 35了?还是不太理解,您能再说点儿吗
追答
假定你要发送的字串储存在变量Cbuffer[]里,
你可以这样操作:Cbuffer[0]=0x55,
这样只会送出一个Byte;
你也可以这样操作:Cbuffer[]=“0x55”,
这样会送出四个Byte;
以上只是一个示例,可以理解吧?
一个是数值操作,一个是字符操作。
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
RS232串行通讯的数据格式包括以下组成部分:1. 起始位:一位,用于表示数据的开始。2. 数据位:通常为8位,但也可以是7位或9位。3. 校验位:可以选择奇偶校验或无校验。4. 停止位:一位,用于表示数据的结束,也可以选择使用1.5个或2...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询