如使用了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 ;