数字与大小端字节序的转化:

QByteArray frame = “AABB65700000CCDD”;frame 的第2第3字节为小端字节序,如何将这两个字节转化为数字25968

QByteArray frame = "AABB65700000CCDD";  

// 提取第2和第3字节(索引1和2,因为索引从0开始)  
quint8 lowByte = static_cast<quint8>(frame.at(1));  // 索引1,低位字节  
quint8 highByte = static_cast<quint8>(frame.at(2)); // 索引2,高位字节  
  
// 将这两个字节组合成一个16位整数(小端字节序)  
 quint16 value = (highByte << 8) | lowByte;  
  
 // 打印结果  
qDebug() << "The 16-bit value (in little endian) is:" << value;  
  
 // 根据你的例子,这个值应该是 25968 (0x6570)  
  // 注意:这里假设你的环境是使用16位无符号整数(quint16)  
 // 如果需要转换为有符号整数,可以使用 qint16 并检查符号位  


数字 25968(即十六进制 0x6570)如何变成小端字节序存储在QByteArray 中

quint16 value = 25968; // 十进制值  
QByteArray byteArray;  
  
// 将 16 位值以小端字节序存储到 QByteArray 中  
 byteArray.append(static_cast<char>(value & 0xFF)); // 低位字节  
byteArray.append(static_cast<char>((value >> 8) & 0xFF)); // 高位字节  
  
 // 打印结果以验证  
qDebug() << "The QByteArray content (hex):";  
for (char byte : byteArray) {  
     qDebug() << std::hex << static_cast<unsigned int>(static_cast<unsigned char>(byte));  
 } 
  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值