Qt 数据类型转换 QString转Quint16

如使用了QString存储用户输入的数据,数据类型(指的是quint16, qint16, float, quint32, qint32等)可供用户自己选择的。而最终要使用的数据类型是quin16,下面是各种类型的转换。

一、QString(strValue) 转 quint16

1、用户输入的是16位正整数或者是16位BCD正整数 ,QString 的值转成 quint16,如下:

  bool isOk;
  quint16 dataValue = 0;
  dataVaule = strValue.toUShort(&isOk);   // isOk可以用来判断 QString转成quint16是否转换成功
  return dataValue;

2、用户输入的是16位整数,QString 的值转成 quint16,如下:

  bool isOk;
  quint16 dataValue = 0;
  qint16  tempValue = 0;
  tempValue = strValue.toShort(&isOk);   // isOk可以用来判断 QString转成qint16是否转换成功
  dataValue = tempValue;       //qint16再转成quint16
  return dataValue;

3、用户输入的是32位正整数或者是32位BCD正整数 ,QString 的值转成 quint16,如下:

  bool isOk;
  QList<quint16> dataList;
  quint16 dataValue = 0;
  quint32 uint32Value = 0;
  uint32Value = strValue.toUInt(&isOk);   // isOk可以用来判断 QString转成quint32是否转换成功
  if(isOk)
  {
    dataValue = uint32Value & 0x0000FFFF; //取低16位
    dataList<<dataValue;
    dataValue = uint32Value>>16;         //右移,取高16位
  }
  return dataList;

4、用户输入的是32位整数,QString 的值转成 quint16,如下:

  bool isOk;
  QList<quint16> dataList;
  quint16 dataValue = 0;
  qint32  int32Value = 0;
  int32Value = strValue.toInt(&isOk);   // isOk可以用来判断 QString转成qint32是否转换成功
  if(isOk)
  {
     dataValue = int32Value & 0x0000FFFF;   //取低16位
     dataList << dataValue;
     dataValue = int32Value << 16;        //右移16位, 取高16位的数据
     dataList << dataValue;
  }
  return dataList ;

5、用户输入的是32位浮点数,QString 的值转成 quint16,如下:

  bool isOk;
  QList<quint16> dataList;
  quint16 dataValue = 0;
  qint32  int32Value = 0;
  float   floatValue = 0;
  floatValue = strValue.toFloat(&isOk);   // isOk可以用来判断 QString转成Float是否转换成功
  if(isOk)
  {
     int32Value = floatValue;                //Float 转换为 qint32 
     dataValue = int32Value & 0x0000FFFF;   //取低16位
     dataList << dataValue;
     dataValue = int32Value << 16;        //右移16位, 取高16位的数据
     dataList << dataValue;
  }
  return dataList ;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值