//求两个数中不同的位的个数 #include <stdio.h> int count_different(int a, int b) { int count = 0; int c = a^b; //a,b中不同的位即为1 while (c) { count++; c = c&(c - 1); //把c中最后一个1去掉 } return count; } int main() { printf("%d\n", count_different(3,8)); //3 p
package wac.wev.as;//新建一个方法在求最大值import java.util.Scanner; public class MaxLian {public static void main(String[] args){//键盘录入以及导包Scanner sc= new Scanner(System.in);//数据接收System.out.println("请输入第一个数据:");int a = sc.nextInt();System.out.println(&qu
不用选择分支找出指定两整数中的最大值与最小值: int x; int y; // 找出x与y的最大值与最小值 int r; // r保存结果 r = y ^ ((x ^ y) & -(x < y)); // min(x, y) 在一些很少的机器上,分支比较很耗资源,而且没有条件移动指令存在,以上的实现可能比传统的方法: r = (x < y) ? x : y 要快. 即使比后者多执行两步指令.(通常,前面的方法要快) 它的工作原理如下: 如果x<y,那么-(x-y)全部为1, 结