1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 不用加号和减号来实现加减法(利用位运算)

不用加号和减号来实现加减法(利用位运算)

时间:2023-08-22 13:17:05

相关推荐

不用加号和减号来实现加减法(利用位运算)

public class 加减法 {public static void main(String[] args) {System.out.println(minus(-4,-3));}public static int plus(int a ,int b) {if(a == 0) {return b;}if(b == 0) {return a;}int x = (a&b) << 1; //这个相当于是进位 与一下是1说明都是1,把它们左移就是全部进位的数,再和下面没进位的一加就是结果int y = (a ^ b);//这个相当于是没进位的,或一下是1说明只有一位是1 return plus(x,y); }//其实减法相当于是加上这个数的相反数,而a的相反数等于~a+1 /*众所周知,计算机是看补码的所以,比如一个数5其原码为 0000 0000 0000 0101,而正数的原、反、补码相同,*~5就是 1111 1111 1111 1010,而这是补码,要转成十进制,先看它的原码,原码 = 补码的符号位不变各位取反加一 *即1000 0000 0000 0110 即-6,* */public static int minus(int a,int b) {if(a == b) {return 0;}return plus(a,~b+1);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。