野生小菜鸟一只,程序效果如下,希望大家多多支持。

1. 按table切换LineEdit;

2. 输入要计算的数据后,按回车执行,计算后的数据会显示在同一行的另一个控件中。

3. LIneEdit内加入了正则表达式使之只能输入特定的数。

format.h

#ifndef FORMAT_H
#define FORMAT_H
#include <QDialog>
namespace Ui {
class Format;
}
class Format : public QDialog
{Q_OBJECT
public:explicit Format(QWidget *parent = 0);~Format();
private:Ui::Format *ui;
private slots:void twoTten();void twoThex();void tenTtwo();void tenThex();void hexTtwo();void hexTten();void floatThex();void hexTfloat();
private:QString binToDec(QString strBin);QString decTobin(QString strDec);QString decToHex(QString strDec);QString hexToDec(QString strHex);
};
#endif // FORMAT_H

format.cpp

#include "format.h"
#include "ui_format.h"
#include <QDebug>Format::Format(QWidget *parent) :QDialog(parent),ui(new Ui::Format)
{ui->setupUi(this);this->setAutoFillBackground(true);this->setPalette(QPalette(QColor(162,200,169)));QRegExp regBinary("[0-1]*");QValidator *validator = new QRegExpValidator(regBinary,this);ui->two_ten1->setValidator(validator);ui->two_hex1->setValidator(validator);QRegExp regDecimal("[0-9]*");QValidator *validator2 = new QRegExpValidator(regDecimal,this);ui->ten_hex1->setValidator(validator2);ui->ten_two1->setValidator(validator2);QRegExp regHexadecimal("[a-fA-F0-9]*");QValidator *validator3 = new QRegExpValidator(regHexadecimal,this);ui->hex_ten1->setValidator(validator3);ui->hex_two1->setValidator(validator3);connect(ui->two_ten1,SIGNAL(returnPressed()),this,SLOT(twoTten()));connect(ui->two_hex1,SIGNAL(returnPressed()),this,SLOT(twoThex()));connect(ui->ten_hex1,SIGNAL(returnPressed()),this,SLOT(tenThex()));connect(ui->ten_two1,SIGNAL(returnPressed()),this,SLOT(tenTtwo()));connect(ui->hex_ten1,SIGNAL(returnPressed()),this,SLOT(hexTten()));connect(ui->hex_two1,SIGNAL(returnPressed()),this,SLOT(hexTtwo()));connect(ui->float_hex1,SIGNAL(returnPressed()),this,SLOT(floatThex()));connect(ui->hex_float1,SIGNAL(returnPressed()),this,SLOT(hexTfloat()));
}Format::~Format()
{delete ui;
}void Format::twoTten(){  //二进制转十进制QString binary = ui->two_ten1->text();QString decimal = binToDec(binary);ui->ten_two1->setText(decimal);
}
void Format::twoThex(){  //二进制转十六进制QString binary = ui->two_hex1->text();QString hexadecimal = decToHex(binToDec(binary));ui->hex_two1->setText(hexadecimal);
}
void Format::tenThex(){  //十进制转十六进制QString decimal = ui->ten_hex1->text();QString hexadecimal = decToHex(decimal);ui->hex_ten1->setText(hexadecimal);
}
void Format::tenTtwo(){  //十进制转二进制QString decimal = ui->ten_two1->text();QString binary = decTobin(decimal);ui->two_ten1->setText(binary);
}
void Format::hexTten(){  //十六进制转十进制QString hexadecimal = ui->hex_ten1->text();QString decimal = hexToDec(hexadecimal);ui->ten_hex1->setText(decimal);
}
void Format::hexTtwo(){  //十六进制转二进制QString hexadecimal = ui->hex_two1->text();QString binary = decTobin(hexToDec(hexadecimal));ui->two_hex1->setText(binary);
}
void Format::floatThex(){QString strFloat = ui->float_hex1->text();float f = strFloat.toFloat();int i = *((int *)&f);QString float2 = QString("%1").arg(i,8,16,QLatin1Char('0'));QString step =float2;float2 = float2.right(4)+step.left(4);ui->hex_float1->setText(float2);
}
void Format::hexTfloat(){QString strHex = ui->hex_float1->text();QString step = strHex;strHex = strHex.right(4)+step.left(4);int c = hexToDec(strHex).toInt();float d = *(float*)&c;QString radiation = QString("%1").arg(d);ui->float_hex1->setText(radiation);
}

xijei.cpp

#include "format.h"
#include <QDebug>QString Format::binToDec(QString strBin){  //二进制转十进制QString decimal;int nDec = 0,nLen;int i,j,k;nLen = strBin.length();for(i=0;i<nLen;i++){if(strBin[nLen-i-1]=="0")continue;else{k=1;for(j=0;j<i;j++)k=k*2;nDec+=k;}}decimal = QString::number(nDec);return decimal;
}
QString Format::decTobin(QString strDec){  //十进制转二进制int nDec = strDec.toInt();int nYushu, nShang;QString strBin, strTemp;//TCHAR buf[2];bool bContinue = true;while ( bContinue ){nYushu = nDec % 2;nShang = nDec / 2;strBin=QString::number(nYushu)+strBin; //qDebug()<<strBin;strTemp = strBin;//strBin.Format("%s%s", buf, strTemp);nDec = nShang;if ( nShang == 0 )bContinue = false;}int nTemp = strBin.length() % 4;switch(nTemp){case 1://strTemp.Format(_T("000%s"), strBin);strTemp = "000"+strBin;strBin = strTemp;break;case 2://strTemp.Format(_T("00%s"), strBin);strTemp = "00"+strBin;strBin = strTemp;break;case 3://strTemp.Format(_T("0%s"), strBin);strTemp = "0"+strBin;strBin = strTemp;break;default:break;}return strBin;
}
QString Format::decToHex(QString strDec){  //十进制转十六进制int hex = strDec.toInt();QString hex1 = QString("%1").arg(hex,8,16,QLatin1Char('0'));return hex1;
}
int hex2(unsigned char ch){          //十六进制转换工具if((ch >= '0') && (ch <= '9'))return ch-0x30;else if((ch >= 'A') && (ch <= 'F'))return ch-'A'+10;else if((ch >= 'a') && (ch <= 'f'))return ch-'a'+10;return 0;
}
QString Format::hexToDec(QString strHex){  //十六进制转十进制int i;int v = 0;for(i=0;i<strHex.length();i++){v*=16;v+=hex2(strHex[i].toLatin1());}return QString::number(v);
}

format.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>Format</class><widget class="QDialog" name="Format"><property name="geometry"><rect><x>0</x><y>0</y><width>242</width><height>207</height></rect></property><property name="windowTitle"><string>Format</string></property><layout class="QGridLayout" name="gridLayout_2"><item row="0" column="0"><layout class="QGridLayout" name="gridLayout"><item row="0" column="0"><widget class="QLabel" name="label"><property name="text"><string>二进制转十进制:</string></property></widget></item><item row="0" column="1"><widget class="QLabel" name="label_2"><property name="text"><string>十进制转二进制:</string></property></widget></item><item row="1" column="0" colspan="2"><layout class="QHBoxLayout" name="horizontalLayout"><item><widget class="QLineEdit" name="two_ten1"/></item><item><widget class="QLineEdit" name="ten_two1"><property name="text"><string/></property></widget></item></layout></item><item row="2" column="0"><widget class="QLabel" name="label_3"><property name="text"><string>二进制转十六进制:</string></property></widget></item><item row="2" column="1"><widget class="QLabel" name="label_4"><property name="text"><string>十六进制转二进制:</string></property></widget></item><item row="3" column="0" colspan="2"><layout class="QHBoxLayout" name="horizontalLayout_2"><item><widget class="QLineEdit" name="two_hex1"/></item><item><widget class="QLineEdit" name="hex_two1"><property name="text"><string/></property></widget></item></layout></item><item row="4" column="0"><widget class="QLabel" name="label_5"><property name="text"><string>十进制转十六进制:</string></property></widget></item><item row="4" column="1"><widget class="QLabel" name="label_6"><property name="text"><string>十六进制转十进制:</string></property></widget></item><item row="5" column="0" colspan="2"><layout class="QHBoxLayout" name="horizontalLayout_3"><item><widget class="QLineEdit" name="ten_hex1"><property name="text"><string/></property></widget></item><item><widget class="QLineEdit" name="hex_ten1"><property name="text"><string/></property></widget></item></layout></item><item row="6" column="0"><widget class="QLabel" name="label_7"><property name="text"><string>float转十六进制:</string></property></widget></item><item row="6" column="1"><widget class="QLabel" name="label_8"><property name="text"><string>十六进制转float:</string></property></widget></item><item row="7" column="0" colspan="2"><layout class="QHBoxLayout" name="horizontalLayout_4"><item><widget class="QLineEdit" name="float_hex1"/></item><item><widget class="QLineEdit" name="hex_float1"><property name="text"><string/></property></widget></item></layout></item></layout></item></layout></widget><layoutdefault spacing="6" margin="11"/><resources/><connections/>
</ui>

功能上:基本功能是有了,但程序在计算范围上有些局限;

界面上:美观性不好,需要怎样调整和设计出好看的界面还未可知。

要是有路过的野生大牛还请对这个程序指点一二,不胜感激!

工具地址:

https://download.csdn.net/download/weixin_41493717/20685513

QT 进制转换小工具 二进制/十进制/十六进制/浮点数转换相关推荐

  1. 16进制ff转化为二进制_3秒钟快速转换十六进制为二进制

    这里介绍下如何快速将十六进制转换为二进制: 举例,ipv6地址:FE80::1 先将FE80拆分为FE和80,我们知道F是十进制的15,E为14,我们知道二进制的八位组,全为1时(1111 1111) ...

  2. 如何使用Qt开发一个进制转换小工具

    本游戏使用Qt5.8开发 这是一款进制转换小工具,比如十二进制的源数据15,如果您选择目标进制7进制的话,那么按下转换按钮,程序会输出[23]:程序的逻辑原理大概如此:首先把输入通过一系列算法转换成b ...

  3. Qt进制转换(十进制转十六进制)

    Qt进制转换 十进制转十六进制 转化方法如下: int x =10;unsigned int ux = x;QString xVal = QString::number(ux, 16);//得到十六进 ...

  4. 编程基础 进制的定义,二进制、十进制、十六进制的相互转换

    文章目录 1. 进制的定义 2. 进制的规范 3. 进制的进位运算 3.1 十进制 3.2 二进制 3.3 八进制 3.4 十六进制 3.5 进制表 4. 进制的相互转换 4.1 二进制与十进制的相互 ...

  5. 计算机系统中常用的进制,计算机中常用 二进制 八进制 十进制 十六进制的特点...

    计算机中常用的计数制 用若干数位(由数码表示)的组合去表示一个数,各个数位之间是什么关系,即逢"几"进位,这就是进 位计数制的问题.也就是数制问题.数制,即进位计数制,是人们利用数 ...

  6. 汇编-输入8位二进制串并转换为16进制数显示到屏幕(利用8421转换)

    今天编写了一个 输入二进制串并转换为16进制数显示到屏幕 的汇编程序 在编写过程中遇到一些问题,并解决后,想把它与大家分享. 题目是这样的: 分析题目: 可得要求 输入 11111111 得到 00F ...

  7. Qt进制转换以及十六进制大小写格式输出

    quint16 num=0x2abc;qDebug()<<"十进制输出"<<QString("%1").arg(num);qDebug( ...

  8. 微型计算机有多少进制,微型计算机原理二进制十进制十六进制.doc

    微型计算机原理二进制十进制十六进制 1:微处理器和微型计算机的发展 自1946年世界上第一台计算机问世以来,计算机科学与技术得到了飞速的发展,短短50多年时间,已经经历了电子管.晶体管.集成电路.超大 ...

  9. 汉字转换成html,汉字与16进制、汉字与Html转义符的转换

    汉字与16进制.汉字与Html转义符的转换 package test; import java.io.UnsupportedEncodingException; import java.net.URL ...

最新文章

  1. redis 模糊删除实现
  2. Spring Cloud Alibaba - 19 Nacos Config配置中心加载不同微服务的通用配置的两种方式
  3. Thymeleaf抽取公共页面片段
  4. Qt消息机制和事件、事件过滤
  5. facebook 面试_如何为您的Facebook产品设计面试做准备
  6. 高数复习9.13 函数与极限
  7. linux cmake变量,linux – CMake错误:此项目中使用了以下变量,但它们设置为NOTFOUND...
  8. Debian6 / 7 Web服务器环境搭建LNMP一键安装包 | 问题汇总与解答
  9. java赋值两个对象数组 clone_Java:类的两个相同对象数组的克隆问题
  10. iOS13:UISceneDelegate
  11. 概率论基础-严士健 第二版 习题与补充2.4答案
  12. 激活函数:双曲正切函数 tanh(x)
  13. 世行首席经济学家:10个增加学术研究影响力的方法
  14. 用Python完成毫秒级抢单,助你秒杀淘宝大单
  15. Java霸王的大陆梦幻版_三国志霸王的大陆,喜欢三国的进
  16. 下单以及订单处理流程描述
  17. skywalking服务端_skywalking-01-搭建skywalking服务端
  18. 怎么联系计算机管理员,自己家电脑怎么联系网络管理员啊~~!?
  19. RAD 10.4中SelectDirectory函数的使用方法
  20. Something else

热门文章

  1. TensorFlow 2.0深度学习算法实战教材---第11章 循环神经网络
  2. Firefox:曾经打破黑暗的产品
  3. 「运维之美」技术周刊 ( 第 5 期 )
  4. win10打开此计算机慢,Win10系统打开此电脑很慢总显示在加载的解决方法
  5. Node.js能做什么
  6. 【2019暑假集训】08.05比赛总结+HduACM
  7. Linux时间子系统 clocksource(计算mult和shift)
  8. 如何开发、本地测试、发布 Laravel 扩展包?Class ‘Angkee\Admin\AdminServiceProvider‘ not found
  9. 一篇不错的网络数据抓包
  10. Oracle Patch补丁体系和如何打补丁