您的位置:首页 > 其它

判断回文,位与,位或

2015-06-22 13:31 239 查看
//判断字符串是否是回文?

int fun(char *sre)

{

char *s1,*s2;

s1 = str;

s2=str+strlen(str)-1;

if(strlen(str)%2 != 0)

{

return 0;

}

while(s1<=2)

{

if(*s1==*s2)

{

s1++;

s2--;

}

else

return 0;

}

return 1;

}

//讲一个字符串转化为十进制数(“123456” to 123456,字符串中只有数字,没有

//没有其他字母,长度不确定)

int str_to_num(char *str)

{

char *temp = str;

int num = 0;

while(*temp != '\0')

{

num = num * 10 + (*temp - '\0');

temp++;

}

return temp;

}

//实现按位与

//int bis(int d, int m);m的二进制位上为1,则把d相应的位 置1

int bis(int d,int m)

{

char temp_1[32],temp_2[32];

int i=0,j=0;

memset(temp_1,'\0',sizeof(temp_1));

while(d != 0)

{

temp_1[i++] = d%2;

d=d/2;

}

memset(temp_2,'\0',sizeof(temp_2));

i=0;

while(m!=0)

{

temp_2[i++]=m%2;

m=m/2;

}

for(i=0;i<32;i++)

{

if(temp_2[i] == 1)

temp_1[i]=1;

}

d = 0;

for(i=0;i<32;i++)

d+=temp_1[i]*pow(2,i);

return d;

}

int bis(int d,int m)

{

char temp_1[32],temp_2[32];

int i=0;j=0;

memset(temp_1,'\0',sizeof(temp_1));

while(d != 0)

{

temp_1[i++] = d%2;

d = d/2;

}

memset(temp_2,'\0',sizeof(temp_2));

while(m != 0)

{

temp_2[i++] = m %2;

m = m/2;

}

for(i=0;i<32;i++)

{

if(temp_2[i]==1)

{

temp_1[i]=0;

}

}

d=0;

for(i=0;i<32;i++)

{

d += temp_1[i]*pow(2,i);

}

return d;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: