摘要: 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 阅读全文
posted @ 2020-07-29 15:40 jackie_astro 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 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 阅读全文
posted @ 2020-07-29 15:31 jackie_astro 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 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 阅读全文
posted @ 2020-07-29 15:02 jackie_astro 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 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 阅读全文
posted @ 2020-07-29 14:50 jackie_astro 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 做法:将数N表示成二进制,并设法(下面会实现)使most significant bit(就是最高位是1的位)以后的所有位设置为1,如: N = (101011), 即十进制的43,经过上述方法变成 (111111),即十进制的63,并对该结果加一得到(1000000),再除以2得到(100000) 阅读全文
posted @ 2020-07-29 14:41 jackie_astro 阅读(831) 评论(0) 推荐(0) 编辑
摘要: 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 阅读全文
posted @ 2020-07-29 14:10 jackie_astro 阅读(662) 评论(0) 推荐(0) 编辑
摘要: 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 阅读全文
posted @ 2020-07-29 14:01 jackie_astro 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 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 阅读全文
posted @ 2020-07-29 13:51 jackie_astro 阅读(267) 评论(0) 推荐(0) 编辑