十进制、二进制、十六进制之间的相互转换

2024-06-18 05:52

本文主要是介绍十进制、二进制、十六进制之间的相互转换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实验目的

实现int 、float 转换为字符串并显示

实现数字字符以二进制、十进制、十六进制显示

实现十进制、二进制、十六进制之间的相互转换

#include "numconvert.h"
#include "ui_numconvert.h"NumConvert::NumConvert(QWidget *parent): QWidget(parent), ui(new Ui::NumConvert)
{ui->setupUi(this);
}NumConvert::~NumConvert()
{delete ui;
}//单价*数量 =金额  计算
void NumConvert::on_btnCompute_clicked()
{int num =ui->editNum->text().toInt();  //获取数量 字符串转为intfloat price = ui->editPrice->text().toFloat();  //获取价格 字符串转为floatfloat total = num*price;    // int*float 获取结果 floatQString str ;str =str.setNum(total,'f',2);  //浮点数 保留两位小数ui->editTotal->setText(str);
}//十进制转换为 二进制、十六进制
void NumConvert::on_btnDec_clicked()
{int dec = ui->editDec->text().toInt();QString binStr;binStr= QString::number(dec,2); //转换为二进制字符串ui->editBin->setText(binStr);QString hexStr;hexStr = QString::number(dec,16);  //转换为16进制字符串hexStr= hexStr.toUpper();  //16进制以大写展示ui->editHex->setText(hexStr);}//二进制转换为十进制、十六进制
void NumConvert::on_btnBin_clicked()
{bool ok ;int val = ui->editBin->text().toInt(&ok,2); //以二进制读入QString decStr = QString::number(val,10); //转换为十进制字符串ui->editDec->setText(decStr);QString hexStr =QString::number(val,16); //转换为十六进制字符串hexStr=hexStr.toUpper();ui->editHex->setText(hexStr);
}//十六进制转换为二进制、十进制
void NumConvert::on_btnHex_clicked()
{bool ok;int val = ui->editHex->text().toInt(&ok,16);//读入十六进制QString decStr = QString::number(val,10);//转换为十进制ui->editDec->setText(decStr);QString binStr =QString::number(val,2); //转换为二进制ui->editBin->setText(binStr);}

效果

这篇关于十进制、二进制、十六进制之间的相互转换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1071478

相关文章

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };

linux中使用rust语言在不同进程之间通信

第一种:使用mmap映射相同文件 fn main() {let pid = std::process::id();println!(

O(n)时间内对[0..n^-1]之间的n个数排序

题目 如何在O(n)时间内,对0到n^2-1之间的n个整数进行排序 思路 把整数转换为n进制再排序,每个数有两位,每位的取值范围是[0..n-1],再进行基数排序 代码 #include <iostream>#include <cmath>using namespace std;int n, radix, length_A, digit = 2;void Print(int *A,

通信工程学习:什么是2ASK/BASK二进制振幅键控

2ASK/BASK:二进制振幅键控         2ASK/BASK二进制振幅键控是一种数字调制技术,其全称是二进制振幅键控(Binary Amplitude Shift Keying)。该技术通过改变载波的振幅来传递二进制数字信息,而载波的频率和相位则保持不变。以下是关于2ASK/BASK二进制振幅键控的详细解释: 一、2ASK/BASK二进制振幅键控的基本原理 1、振幅键控:

解决C/C++ 头文件相互包含 问题的方法

所谓超前引用是指一个类型在定义之前就被用来定义变量和声明函数。 类A和类B需要彼此互相引用,这样必然有一个类会先被定义,而另外一个类后被定义,这样在 先被定义的类引用后被定义的类的时候,就导致了所谓的超前引用。 超前引用导致的错误有以下几种处理办法:   1) 使用类声明    在超前引用一个类之前,首先用一个特殊的语句说明该标识符是一个类名,即将被超前引用。其使用方法是

16 子组件和父组件之间传值

划重点 子组件 / 父组件 定义组件中:props 的使用组件中:data 的使用(有 return 返回值) ; 区别:Vue中的data (没有返回值);组件方法中 emit 的使用:emit:英文原意是:触发、发射 的意思components :直接在Vue的方法中声明和绑定要使用的组件 小炒肉:温馨可口 <!DOCTYPE html><html lang="en"><head><

数据流与Bitmap之间相互转换

把获得的数据流转换成一副图片(Bitmap) 其原理就是把获得倒的数据流序列化到内存中,然后经过加工,在把数据从内存中反序列化出来就行了。 难点就是在如何实现加工。因为Bitmap有一个专有的格式,我们常称这个格式为数据头。加工的过程就是要把这个数据头与我们之前获得的数据流合并起来。(也就是要把这个头加入到我们之前获得的数据流的前面)      那么这个头是