您的位置:首页 > 其它

字符串转10进制,10进制转字符串,并移16进制数显示

2015-04-18 22:15 357 查看

ID=dateLine->text();//得到字符串

QString str = ID;

bool ok;

int hex = str.toInt(&ok, 16);   // 将字符串变成16机制数

hex=hex+1;


QString t = QString::number(hex, 16).toUpper();将数字变成16机制数,并以大写显示

dateLine->setText(t);显示在textveiw() 里面


cout<< hex<<endl;



16进制转换。

这是一段非常经典的代码,主要用在字符串与 int 类型的转换。
实现功能:
1、将字符串按照16进制数,自增,只用修改
int hex = str.toInt(&ok, 10);
hex=hex+1;

2、将字符串按照10进制数,自增
int hex = str.toInt(&ok, 16);
hex=hex+1;
3、将字符串转成16进制数,然后以10进制数显示。
int hex = str.toInt(&ok, 16);
QString t = QString::number(hex, 10).toUpper();
4、将字符串转成10进制数,然后以16进制数显示
int hex = str.toInt(&ok, 10);
QString t = QString::number(hex, 16).toUpper();

原理:
int QString::toInt(bool * ok = 0, int base = 10) const
Returns the string converted(转换) to an int using base base, which is 10 by default and must be between 2 and 36(转换进制数,只能是2到36,二进制,10进制 ,9进制等都能够转换了), or 0. Returns 0 if the conversion fails.

If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.
转换成功,返回值OK为1,返回 错误,则值为1.所以 还可以对OK值进行 利用判断,转换是否成功。

If base is 0, the C language convention is used: If the string begins with "0x", base 16 is used; if the string begins with "0", base 8 is used; otherwise, base 10 is used.

The string conversion will always happen in the 'C' locale. For locale dependent conversion use QLocale::toInt()



yearLine->setText((QString::number(CMD.trimmed().toInt(), 10)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: