Qt进制转化,十进制转化为2进制 ,16进制转化为2进制

文章详细介绍了如何在C++中进行不同数值类型(如int、float、double)以及字符串表示的10进制、16进制和2进制之间的转换,涉及到了QString、QByteArray和stringstream等工具的使用。
摘要由CSDN通过智能技术生成

1》10进制转化为2进制  
------ int型
int number = m_dataDefault.toInt();
QString numBin = QString::number(number,2).rightJustified(8,'0');

-------float型   -----先将10进制转化为16进制,再将16进制转化为2进制
float number = str.toFloat();
uint32_t x = *(uint32_t*)&number;
char* pHex = new Char[32];
qsnprintf(pHex,32,"%08X",x);

QString str = QString(pHex);
in val = str.toInt(nullptr,16);
QString strBin = str.number(val,2).rightJustified(32,'0');


2》10进制转化为16进制


3》16进制转化为2进制
int val = m_receiveString.left(dataLong).toInto(nullptr,16);
QString receiveStr = m_receiveString.left(dataLong);
QString strBin = m_receiveString.left(dataLong).number(val,2).rightJustified(dataBit,'0');

4》》2进制转十进制
-------float/double
const char* pHex;
QByteArray ba = receiveStr.toLatin1();
pHex = ba.data();

unsigned int x;
std::stringstream ss;
ss<<std::hex<<<pHex;
ss>>x;

-------char ,unshort等
int val = m_receiveString.left(dataLong).toInto(nullptr,16);
QString str = QString("%1").arg(val,0,10);
int num =str.toInt();

5》16进制转化为10进制


6》2进制转16进制
bool ok;
int val = strBin.toInt(&ok,2);
m_strHex = m_strHex + QString("%1").arg(val,2,16,QLatin1Char('0')).toUpper();

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值