qt5.10 通讯数据处理----2进制转换----基础知识复习

最近在做车辆CAN总线到我写的qt程序的通讯,硬件选用的是致远电子的盒子,在上位机程序上加了udp传输,界面端使用的qt5.10,现在数据已经拿到并处理。过程有点麻烦,花了我几天时间。现在还有偶尔末位丢帧的小问题(也可能是UDP本身问题)。今天记录下来,做个备份。上位机端使用的是C++,发送UDP使用的是bytearray。在qt端拿到数据后如何根据CAN定义文档取出想要的位?感谢胡同学的提醒,计算机内部存储的都是二进制,只是显示内容不同。今天我测试了qt二进制的运算,效果很好。代码如下:(下面代码是在widget中)

    unsigned char a=255;//a=1111 1111 char是8bit
    unsigned char b=170;//b=1010 1010
    unsigned char c=a^b<<4;//c=0101 1111一开始以为移位补1了,后来发现是位移优先级高,先算了位移,虚惊一场
    QString d;
    d=QString("0b%1").arg(c,8,2,QLatin1Char('0'));//第一个参数:要显示的数

                                                                               //第二个参数:要显示的最小位数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值