为了账号安全,请及时绑定邮箱和手机立即绑定

第五行,len>>=1,是什么意思啊?

第五行,len>>=1,是什么意思啊?

C++
浮云间 2023-03-04 22:18:04
#include <iostream> #include <cstring> using namespace std; int reversecmp_str(char *s1, char *s2, int &len) { for (int i=0;i<len;i++) { if (*(s1+i) != *(s2+len-1-i)) { cout << "i=" << i << endl; return 0; } } return 1; } int compare_str(char *s1, char *s2, int &len) { if (strncmp(s1, s2, len)!=0 ) { if (reversecmp_str(s1, s2, len)) { return 0; } return 1; } if (len%2!=0) return 2; len>>=1; strncpy(s2, s1+len, len); return compare_str(s1, s2, len); } int main() { char s[1024];  cin >>s; int len = strlen(s); char s1[512], s2[512]; len>>=1; strncpy(s1, s, len); strncpy(s2, s+len, len); int ret = compare_str(s1, s2, len); if (ret==0) s[len] = 0; else if (ret==1) { len <<= 1; s[len] == 0; } cout<<len<<endl; return 0; }
查看完整描述

2 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

可以分解为:
len = len>>2

查看完整回答
反对 回复 2023-03-08
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

位移符号。位运算右移一位,等价于/2

查看完整回答
反对 回复 2023-03-08
  • 2 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信