算术右移 逻辑右移
摘要:
先由一道题目引入:有两个变量a和b,不用if、?:、switch等判断语句,找出较大的那个变量。其中一种答案如下:char* result[] = {"a is larger", "b is larger"};int c = a - b;c = unsigned(c) >> (sizeof(int) * 8 - 1);cout << result[c] << endl;sizeof(int) * 8 很好理解,就是求出int型占内存的bit数,-1就是为了右移后保留最高位,即保留符号位。问题来了:为什么移位时要把c转为 阅读全文
posted @ 2012-05-13 11:18 JacobChen2012 阅读(4096) 评论(1) 推荐(1) 编辑