如何使用Qt编程将十进制转换为十六进制?

Kev*_*vin 4 c++ qt

如何使用Qt编程将十进制转换为十六进制?如69切换到45,56切换到38等...我试试这样

QString str = QString::number(s.at(i).unicode());
bool ok;
qDebug() << str.toUtf8();
Run Code Online (Sandbox Code Playgroud)

但失败了.我需要将此字符串"E8A5"ASCII开关转换为十六进制数字或字符串.

evi*_*uff 13

源字符串:

QString str = QString::number(s.at(i).unicode());
Run Code Online (Sandbox Code Playgroud)

然后:

步骤1.将字符串转换为整数

int nValue = str.toInt();
Run Code Online (Sandbox Code Playgroud)

步骤2.使用Qt将整数转换回十六进制字符串

QString result = QString::number( nValue, 16 );
Run Code Online (Sandbox Code Playgroud)

第3步.转换为大写(可选)

qDebug() << result.toUpper();
Run Code Online (Sandbox Code Playgroud)

或者更短的形式:

qDebug() << QString::number( str.toInt(), 16 ).toUpper();
Run Code Online (Sandbox Code Playgroud)

  • 我想你应该解释一下你的答案. (2认同)