如何把字符串转换为2进制,字符串中存的是十进制字符,'0'-'9' rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可先用atoi()将str---->number用itoa(....,2)将number---->..... 如果你要的是一个二进制数字字符串就可以char num[] = "12345";char buffer[20] = "\0";int ret = 0;ret = atoi(num);itoa(ret, buffer, 2);buffer为转换后的字符 首先不能用atoi()和itoa,因为这个字符数组不小于50位,转换后的2进制数我要用一个unsigned long b[...]来存储 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]);} 先将字符串转换成 数值。然后_itoa(数值,buf,2); 如果把它转换为16进制的就可以rqcui(rqcui)的了,或者8进制的也可以 转换为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;}我调试一下,看方法可以不。 sorry ,忘了个重要的东西,所以不对,不好意思呀,我再改改。 不明白你的意图是什么,如果你目的就是想把该字符串存成unsigned long,为何非要把它转换成2进制呢,不明白。你可以拆分字符串转化呀 如果你要是想把字符里的数字变成二进制然后存成字符串就用楼上 LinHanLao(凌寒)的方法做 因为我的数很大不能用普通的数据类型来表示,所以用unsigned long数组来表示 我想如果数字非常大,只好用list或者link list了。 我想到一個算法,就是由于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不知道時間複雜度是多少,估計不會小了! ado+DataGrid CDumpContext类声明的一个比较奇怪的问题 请问怎么才能使WaitCommEvent()强制返回啊? 困惑? 控件问题 问一个VC中比较低级的问题 怎样让EDIT控件打开网络上的TXT文件? 取得html代码的时候的问题,recv后来返回总是零 SOS:请教:在VC++.net(2003)中,为什么有的菜单的ID会自行发生变化? 如何delete结构体指针? 为什么在CTreeCtrl类增加的各个节点图标没有显示,只是空出来 请问我如何在窗口画好后在截屏,我原来有钩子,在处理完WM_PAINT消息后截屏,这样对不对???
用itoa(....,2)将number---->.....
就可以
char num[] = "12345";
char buffer[20] = "\0";
int ret = 0;
ret = atoi(num);
itoa(ret, buffer, 2);buffer为转换后的字符
char dest[80];
memest(dest,0,sizeof(dest));
for(int i=0;i<strlen(source);i++)
{
sprintf(dest[i],"%02x",source[i]);
}
然后
_itoa(数值,buf,2);
例如一下,
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;
}我调试一下,看方法可以不。
忘了个重要的东西,所以不对,不好意思呀,我再改改。
将A,B,C,D……分别存入long[0], long[1], long[2], long[3]……即可,所以每次除以2^32,向long[]存入每次除后剩下的余数,即完成10to2的转换。
但是想做這個需要字符串除法,很麻煩,有沒有更好的了呢?大家討論一下,:)另外再說一下,這個輸入的數大於DOUBLE數據類型所能表示的數!像bojinyu(沙鱼)所說的,每次除2不知道時間複雜度是多少,估計不會小了!