判断回文,位与,位或

//判断字符串是否是回文?
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;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值