2019年2月11日

找出一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的(使用位运算)

摘要: 要求使用位运算 异或运算:相同为0,不同为1, a[]={1,2,5,6,8,8,1,2,6} 1^x=-x , 0^x=x b[]={1,1,2,2,5,6,6,8,8} 举例a[] 1: 0 0 0 1 2: 0 0 1 0 0011--> 1与2异或运算的结果 5: 0 1 0 1 0110- 阅读全文

posted @ 2019-02-11 22:31 The_Ocean 阅读(350) 评论(0) 推荐(0) 编辑

求两个数的平均值,不能只用(a+b)/2的方法

摘要: 1 #include 2 3 int avg1(int a, int b) 4 { 5 //利用移位操作符 6 //右移移位相当于——>除以2 :(a+b)>>1 7 //考虑到溢出情况:1.可以增加字节的大小将4个字节变为8个字节 8 return a + ((b - a) >> 1); 9 } 10 11 int avg2(int ... 阅读全文

posted @ 2019-02-11 21:53 The_Ocean 阅读(558) 评论(0) 推荐(0) 编辑

写一个函数实现整数的二进制位模式从左到右翻转

摘要: 如: 在32位机器上25这个值包含下列各位: 00000000000000000000000000011001 翻转后:(2550136832) 10011000000000000000000000000000 程序结果返回: 2550136832 思路:第1位逆转到了第32位->后整数的值为2^3 阅读全文

posted @ 2019-02-11 21:04 The_Ocean 阅读(379) 评论(0) 推荐(0) 编辑

两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同

摘要: 思路:利用&用算加右移的方法来提取二进制中的每一位数,然后进行比较,查看是否相同。 阅读全文

posted @ 2019-02-11 10:04 The_Ocean 阅读(383) 评论(0) 推荐(0) 编辑

获取一个数二进制序列中所有的偶数位和奇数位

摘要: 思路:要判断一个整数的二进制偶数位是0还是1,则可以用这个整数和1或2进行&的用算,之后进行右移在进行&的用算,直到右移为0结束。 可以利用这种方法提取二进制数。 阅读全文

posted @ 2019-02-11 10:00 The_Ocean 阅读(744) 评论(0) 推荐(0) 编辑

导航