|
楼主 |
发表于 2004-7-29 16:28:52
|
显示全部楼层
//编写这个程序是为了将一个十进制表示的IP 地址用二进制存储
[code:1]
#include <string.h>
//char *dectobin(char *s);
int main(int argc,char *argv[])
{
int i;//用来表示当前字符串的位置
int num;//用来表示当前取到的数
int j,curp,temp,len,k;/*j用于将十进制数转换成二进制数时的当前位curp表示转换成
数字符串的当前位置temp用来存放这个数转换成的二进制的位数*/
char c;
char bin[8];//用来存放一个八位二进制数
char *ret;//用来存放转换成的二进制字符串
curp=0;
i=0;
len=strlen(argv[1]);
while(i<len)
{
num=0;
c=argv[1][i];
while(c!='.'&i<len)
{
num=num*10;
num=num + (int)c-48;
i++;
c=argv[1][i];
}
if(c=='.')
i++;
j=0;
while(num!=0)
{
bin[j]=num %2 + 48;
num=num/2;
j++;
}
while(j<8)//判断当前二进制位数是否达到8如果不是则在前面补0
{
bin[j]='0';
j++;
}
for(j=7;j>=0;j--)
{
ret[curp]=bin[j];
curp++;
}
}
ret[curp]='\0';
printf("The binary is %s \n",ret);
return 1;
}
[/code:1]
谢谢你 |
|