Java-不使用运算符,使用二进制符号进行求和
2017-11-20 10:53
411 查看
package test; public class tt { public static int add(int a, int b) { if (b == 0) { return a; } int c = a ^ b; //异或:相同为0,不同为1 /* 异或 * 1000111010111 -- b=4567 ^0000001111100 -- a=124 ---------------- 1000110101011 -- c=4523 * */ System.out.println("c="+c); int d = (a & b) << 1; /* 与 * 1000111010111 -- b=4567 ^0000001111100 -- a=124 ---------------- 0000001010100 -- c=84 * */ System.out.println("a&b="+(a&b)); /* <<:向左移1位,后面补0 * 1000111010111 -- b=4567 ^0000001111100 -- a=124 ---------------- 0000001010100 -- c=84 0000010101000 -- d=168 * */ System.out.println("d="+d); System.out.println("--------------------------------------"); return add(c,d); } public static void main(String[] args) { System.out.println(add(124,4567)); } }
计算步骤:
1.^:异或,能够得到没有进位的结果
2.&:与,能够得到相加之后,可以进位的位置信息
3.<<:将前两步的结果相加,直到不再产生进位为止
十进制转二进制的方式,如下图所示:
计算结果,如下图所示:
相关文章推荐
- 探索java基本类型和包装类型的使用运算符==进行比较的底层细节
- java中使用二进制进行权限控制
- 使用异或进行简单的密码加密(JAVA实现)
- 使用反射查询类的方法和字段以及使用IS运算符号类转换和AS运算符
- java中使用MD5进行加密
- 使用Eclipse与Ant进行java程序开发
- 使用Java操作二进制文件
- 使用 Java 进行图像处理 - 图像缩放
- 使用 Java 进行图像处理 - 将彩色图像转换为灰度图
- java中使用MD5进行加密
- java中使用MD5进行加密
- java中使用MD5进行加密
- [★].NET 使用 二进制格式 进行序列化
- 使用java进行文件加密
- *使用Java操作二进制文件 (转)
- java中使用MD5进行计算摘要
- 使用Java操作二进制文件
- 使用RMI和CORBA进行分布式java程序设计
- 使用 Java 进行图像处理 - 取得图像上指定位置像素的 rgb 颜色分量
- 使用 WebSphere Studio Application Developer 开发 Java 程序: 与 VisualAge for Java 进行比较