Qt 数据的进制转换:二进制、十进制和十六进制

发布时间 2023-04-10 15:29:14作者: 一杯清酒邀明月

将一个整数转换为不同进制的字符串,可以使用QString的函数setNum()或静态函数number(),函数原型为:

1 QString &setNum(int n,int base=10)
2 QString number(int n,int base=10)

其中n是待转换的整数,base是使用的进制,缺省为十进制,也可以指定为十六进制和二进制

以读取二进制字符串,然后转换为十进制和十六进制显示的按钮的槽函数为例:

 1 void Widget::on_btnBin_clicked()
 2 {
 3     QString str=ui->editBin->text();//读取二进制字符串
 4     bool ok;
 5     int val=str.toInt(&ok,2);//以二进制数读入
 6     
 7     str=QString::number(val,10);//数字显示为十进制字符串
 8     ui->editDec->setText(str);
 9     
10     str=str.setNum(val,16);//显示为十六进制
11     str=str.toUpper();//将小写转换为大写
12     ui->editHex->setText(str);
13 }