摘要:
sign.cpp内容如下: #include <iostream> using namespace std; bool opposite_sign(int a, int b) { return ((a ^ b) < 0); } int main(int argc, char **argv) { in 阅读全文
摘要:
average.cpp内容如下: #include <iostream> using namespace std; int average(int a, int b) { return (a & b) + ((a ^ b) >> 1); } int main(int argc, char** arg 阅读全文
摘要:
set.cpp内容如下: #include <iostream> using namespace std; int set_nth(int x, int n) { return x | (1 << n); } int main(int argc, char **argv) { const int k 阅读全文
摘要:
least_bit.cpp内容如下: #include <iostream> using namespace std; int save_least_bit(int n) { return n ^ (n & (n - 1)); } int save_least_bit2(int n) { retur 阅读全文
摘要:
做法:将数N表示成二进制,并设法(下面会实现)使most significant bit(就是最高位是1的位)以后的所有位设置为1,如: N = (101011), 即十进制的43,经过上述方法变成 (111111),即十进制的63,并对该结果加一得到(1000000),再除以2得到(100000) 阅读全文
摘要:
check.cpp内容如下: #include <iostream> using namespace std; // check if the i-th bit is set or not in the binary form of n. bool check(int n, int i) { if 阅读全文
摘要:
count_one.cpp内容如下: #include <iostream> using namespace std; int count_one(int n) { int count = 0; while (n) { n = n & (n - 1); ++count; } return count 阅读全文
摘要:
power_two.cpp内容如下: #include <iostream> using namespace std; bool is_power_of_two(unsigned int n) { return (n && !(n & (n-1))); } int main(int argc, ch 阅读全文