#include <iostream>
using namespace std;
int main()
{
char A[] = "finding";
int32_t x;
int32_t H = 0;
for (int i = 0; A[i] != '\0'; i++) {
x = 1;
//ASCII code a:97 z:122
x = x << (A[i] - 97);
if ((x & H) > 0)
cout << A[i] << " is duplicated"<< endl;
else
H = x | H;
}
}
前提知识:
left shift操作
int a = 3; // 二进制表示:0011
int result = a << 2; // 结果为12,二进制表示:1100
right shift操作
int a = 12; // 二进制表示:1100
int result = a >> 2; // 结果为3,二进制表示:0011
or操作
int main() {
int a = 6; // 二进制表示:0110
int b = 3; // 二进制表示:0011
int result = a | b; // 结果为7,二进制表示:0111
std::cout << "Result of a | b: " << result << std::endl; // 输出结果:7
return 0;
}
and操作
int main() {
int a = 6; // 二进制表示:0110
int b = 3; // 二进制表示:0011
int result = a & b; // 结果为2,二进制表示:0010
std::cout << "Result of a & b: " << result << std::endl; // 输出结果:2
return 0;
}