十六进制字符串是什么意思(串口发送数据——字符串发送与十六进制发送的区别)

在使用串口发送数据时可以选择字符串发送或者十六进制发送,通常情况下我们习惯选用字符串发送数据。关于两者的区别,需要从计算机存储数据的格式说起。

在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)在计算机中用 0000 0001(2)来表示。我们在用串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照二进制的方式一位一位的发送出去。

例如我们要发送一串数据“A852010100000000A91A”,以字符串和十六进制两种方式发送:(1)字符串发送

十六进制字符

串口以字符串发送数据,首先将字符串转化为二进制,格式如下:

然后按照8位(串口设置数据位为8位)形式将数据发送出去。

串口接收的数据格式如下:

(2)十六进制发送数据

串口以十六进制发送数据,首先将数据转化为:

然后按照8位(串口设置数据位为8位)形式将数据发送出去。

串口接收的数据格式如下:

仔细对照接收结果就很容易明白字符串发送和十六进制发送的区别了。

附转换:

  1. //转换每一个字符为正真的16进制数值
  2. char Widget::ConvertHexChar(char ch)
  3. {
  4. if((ch >= '0') && (ch <= '9'))
  5. return ch-0x30;
  6. else if((ch >= 'A') && (ch <= 'F'))
  7. return ch-'A'+10;
  8. else if((ch >= 'a') && (ch <= 'f'))
  9. return ch-'a'+10;
  10. else return (-1);
  11. }

您可以还会对下面的文章感兴趣

最新评论

  1. 问灵十三载
    问灵十三载
    发布于:2022-04-27 00:27:11 回复TA
    在计算机中用 0000 0001(2)来表示。我们在用串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照二进制的方式一位一位的发送出去。例如我们要发送一串数据“A85201
  1. 云策振芳
    云策振芳
    发布于:2022-04-27 16:29:56 回复TA
    如果感到郁闷,请拨打俺的电话!谈感情请按,谈工作请按,谈人生请按,给俺介绍对象请按,请俺吃饭请大声直说,找俺借钱庆直接挂机。

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

使用微信扫描二维码后

点击右上角发送给好友