无中断的两个整数(或长整数)的平均值,截断为0

无中断的两个整数(或长整数)的平均值,截断为0,第1张

无中断的两个整数(或长整数)的平均值,截断为0

1
如果最低位不同,则需要添加到结果中(因此结果不准确,需要四舍五入),并且结果中的符号位已设置(结果为负数,因此您需要向下舍入)汇总)。

因此,应该执行以下 *** 作(未测试):

public static int mean(int x, int y) {    int xor = x ^ y;    int roundedDown = (x & y) + (xor >> 1);    return roundedDown + (1 & xor & (roundedDown >>> 31));}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5439518.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存