我是靠谱客的博主 听话河马,最近开发中收集的这篇文章主要介绍Qt 将10进制数字与26进制(用A-Z来表示)之间相互转换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

参考:将10进制数字转化为26进制用A-Z来表示

.h文件

#ifndef CONVERSIONOFNUMBERSYSTEM26_H
#define CONVERSIONOFNUMBERSYSTEM26_H

#include <QObject>

class conversionOfNumberSystem26 : public QObject
{
    Q_OBJECT
public:
    explicit conversionOfNumberSystem26(QObject *parent = nullptr);

    static QString ToNumberSystem26(int n);
    static int FromNumberSystem26(QString s);

signals:

};

#endif // CONVERSIONOFNUMBERSYSTEM26_H

.cpp文件

#include "conversionofnumbersystem26.h"

conversionOfNumberSystem26::conversionOfNumberSystem26(QObject *parent) : QObject(parent)
{

}


QString conversionOfNumberSystem26::ToNumberSystem26(int n)
{
    QString s = "";
    while (n > 0)
    {
        int m = n % 26;
        if (m == 0)
        {
            m = 26;
        }
        s = (char)(m + 64) + s;
        n = (n - m) / 26;
    }
    return s;
}

int conversionOfNumberSystem26::FromNumberSystem26(QString s)
{
    if (s.isEmpty())
    {
        return 0;
    }

    int n = 0;
    for (int i = s.length() - 1, j = 1; i >= 0; i--, j *= 26)
    {
        char c = s[i].toUpper().unicode();          //.unicode()是将QChar转为char
        if (c < 'A' || c > 'Z')
        {
            return 0;
        }
        n += ((int)c - 64) * j;
    }
    return n;
}

最后

以上就是听话河马为你收集整理的Qt 将10进制数字与26进制(用A-Z来表示)之间相互转换的全部内容,希望文章能够帮你解决Qt 将10进制数字与26进制(用A-Z来表示)之间相互转换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部