java无加减乘除运算符实现加法
2015-08-19 23:24
519 查看
/**java无加减乘除运算符实现加法 * @author 牵手无奈 * */ public class Add { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(Integer.toBinaryString(1)); } public static int add(int a,int b){ int result = 0;//初始化返回结果 int m = -2;//初始化置0的数,-2的二进制为11111111111111111111111111111110 int n = 1;// 初始化置1的数,1 的 二进制为00000000000000000000000000000001 byte c = 0;//表示上一次按位相加有没有进位,初始为0 while(b!=0 || a!=0){ byte p = (byte) (b&1);//把b的最低位取出来 b=b>>>1;//b算术右移一位 byte q = (byte)(a&1);//把a的最低位取出来 a = a>>>1;//a算术右移一位 if(((c&p&q)==1)){//当c,p,q都为1时 result = result | n;//表示在当前位置1,一开始表示将result右边第一位置1 c=1;//有进位产生 }else if((((c^p^q)==0)&&((c|p|q)==1))){//当c,p,q中有两个为1时,将当前位置0,因为1+1+0=0并产生进位 result = result & m; c=1; }else if((c|p|q)==1){//当c,p,q中只有1个为1时,将当前位置1,没有进位 result = result | n; c=0; }else{//当c,p,q中全部为0时,将当前位置0,没有进位 result = result & m; c=0; } m = m<<1; m = m|1; n = n<<1; } if(c==0) return result; else{//如果最后有进位,将当前位置1 result = result | n; return result; } } }
java无加减乘除运算符实现加法
相关文章推荐
- java的枚举类型
- Spring-boot 学习笔记(1)
- Java-Exception(异常)
- JavaFX2 - 文本可复制的Label
- ubuntu下jdk区别与切换
- install hadoop dev plugin in eclipse
- Java泛型总结
- Eclipse插件使用links目录的用法
- 直接在sublime test3中编译Java源程序
- Java的内存回收机制
- Spring & 配置
- Java集合的遍历方法
- Ubuntu安装Sun JDK及如何设置默认java JDK
- Java中标识接口的作用
- maven学习
- 转:java中include动作和include指令的区别
- Java基础再进阶学习总结2015(一)
- java(08-19)
- Java Web工程配置log4j相对路径
- Java IO深入浅出