rt

解决方案 »

  1.   

    可先用atoi()将str---->number
    用itoa(....,2)将number---->.....
      

  2.   

    如果你要的是一个二进制数字字符串
    就可以
    char num[] = "12345";
    char buffer[20] = "\0";
    int  ret = 0;
    ret = atoi(num);
    itoa(ret, buffer, 2);buffer为转换后的字符
      

  3.   

    首先不能用atoi()和itoa,因为这个字符数组不小于50位,转换后的2进制数我要用一个unsigned long b[...]来存储
      

  4.   

    char source="1234555eeeeeeeeeeesdfdfdfdff";
    char dest[80];
    memest(dest,0,sizeof(dest));
    for(int i=0;i<strlen(source);i++)
    {
       sprintf(dest[i],"%02x",source[i]);
    }
      

  5.   

    先将字符串转换成 数值。
    然后
    _itoa(数值,buf,2);
      

  6.   

    如果把它转换为16进制的就可以rqcui(rqcui)的了,或者8进制的也可以
      

  7.   

    转换为8进制的好,
    例如一下,
    char str[4] = "4444";
    int num[4];
    int temp = 0;
    char str1[8];for(int i = strlen(str) - 1 ; i < 0 ; i--)
    {
    num[i] = str[i] - 0x30 + temp;
    temp = num[i] / 8;
    str1[i] = num[i] % 8 + 0x30;
    }我调试一下,看方法可以不。
      

  8.   

    sorry ,
    忘了个重要的东西,所以不对,不好意思呀,我再改改。
      

  9.   

    不明白你的意图是什么,如果你目的就是想把该字符串存成unsigned long,为何非要把它转换成2进制呢,不明白。你可以拆分字符串转化呀
      

  10.   

    如果你要是想把字符里的数字变成二进制然后存成字符串就用楼上 LinHanLao(凌寒)的方法做
      

  11.   

    因为我的数很大不能用普通的数据类型来表示,所以用unsigned long数组来表示
      

  12.   

    我想如果数字非常大,只好用list或者link list了。
      

  13.   

    我想到一個算法,就是由于long[]中存的数可以表示成A+B*2^32+C*2^(32*2)+D*2^(32*3)……
    将A,B,C,D……分别存入long[0], long[1], long[2], long[3]……即可,所以每次除以2^32,向long[]存入每次除后剩下的余数,即完成10to2的转换。
    但是想做這個需要字符串除法,很麻煩,有沒有更好的了呢?大家討論一下,:)另外再說一下,這個輸入的數大於DOUBLE數據類型所能表示的數!像bojinyu(沙鱼)所說的,每次除2不知道時間複雜度是多少,估計不會小了!