摘要:
实现自Matrix67!//定义:32位的整数的前16位为高位,后16位为低位//高低位交换#include <stdio.h>int main() { int n; while (scanf("%d", &n) != EOF) { int s, s1, s2; s1 = ((1 << 16) - 1) & n; s2 = s1 ^ n; s = (s1 << 16) | (s2 >> 16); printf ("%d\n", s); } return 0;}//定义:32位的整数的前16位 阅读全文
posted @ 2012-04-05 12:18
Try86
阅读(444)
评论(0)
推荐(0)
摘要:
实现自Matrix67!//计算二进制中的1的个数//分治思想#include <stdio.h>int main() { int n; while (scanf("%d", &n) != EOF) { n = (n & 0x55555555) + ((n >> 1) & 0x55555555); n = (n & 0x33333333) + ((n >> 2) & 0x33333333); n = (n & 0x0F0F0F0F) + ((n >> 4) & 0x0F0 阅读全文
posted @ 2012-04-05 12:13
Try86
阅读(203)
评论(0)
推荐(0)
摘要:
实现自Matrix67!//二进制中的1有奇数个还是偶数个//实现一#include <stdio.h>int main() { int n; while (scanf("%d", &n) != EOF) { int c = 0; while (n) { c += n & 1; n >>= 1; } if (c & 1) printf ("奇数个\n"); else printf ("偶数个\n"); } return 0;}//实现二//分治思想#inc... 阅读全文
posted @ 2012-04-05 12:12
Try86
阅读(565)
评论(0)
推荐(0)
摘要:
参考自Matrix67!//二分查找32位整数的前导0个数//二分查找思想#include <stdio.h>int main() { unsigned int n; while (scanf("%u", &n) != EOF) { if (n == 0) printf ("32\n"); else { int s = 1; if ((n >> 16) == 0) {s += 16; n <<= 16;} if ((n >> 24) == 0) {s += 8; n <<= 8;} .. 阅读全文
posted @ 2012-04-05 12:10
Try86
阅读(643)
评论(0)
推荐(0)
摘要:
详细理论请参考Matrix67!//去掉最后一位,相当于除于2#include <stdio.h>int main() { int n; while (scanf("%d", &n) != EOF) { printf ("%d\n", n>>1); } return 0;}//在最后加一个0,相当于乘于2#include <stdio.h>int main() { int n; while (scanf("%d", &n) != EOF) { printf ("%d\n&q 阅读全文
posted @ 2012-04-05 07:39
Try86
阅读(207)
评论(0)
推荐(0)
浙公网安备 33010602011771号