MODBUS RTU 浮点算法 算法如下:
http://zhidao.baidu.com/question/208808310.html目前在将二进制转换成十进制时遇到困难。就是把2进制的111010110011000000000转换成十进制的111010110011000000000
本来想把2进制的数先转成cstring 在转成十进制。但是cstring的format没有二进制的%格式。
请问有什么好的思路吗?有直接现成的MODBUS RTU 浮点算法也可以。感觉比较复杂,最后还要将转完的数据在转一次。。

解决方案 »

  1.   

    数就是数,只有在显示时才十进制二进制。
    你要做printf?
      

  2.   

    bitset类。#include "stdafx.h"
    #include <iostream>
    #include <bitset>
    using namespace std;int _tmain(int argc, _TCHAR* argv[])
    {
    int a = 4;
    bitset<32> b(a); int i = atoi(b.to_string().c_str());
    cout<<i<<endl; return 0;
    }
      

  3.   

    字符串转数字?_tcstol,第三个参数指定进制就行了
      

  4.   

    int 类型的数最多只能表示10位也就是说最多只能转10位char buf[11]={0};int s=表示的数&0x000003FF;  //原数取10位
    for(int i=0;i<10;i++)
     buf[i]=(s>>(9-i))&1+0x30;int r=atoi(buf);            //结果1
    int r;
    sscanf(buf,"%d",&r);            //结果2