范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Math。abs竟然返回了负数?

  事情是这样的。
  某一天扯扯群里发来一段代码:
  读者提问道,为啥这个 pos 还要判断一下?
  这代码一看我就熟悉,RocketMQ 的源码,如果你看过源码你会发现到处都有这样的判断。
  想着已经取绝对值了,然后再取余,肯定是正数啊,这  if(pos<0)  不就是多余的判断吗?
  那我们先看一下  Math.abs  的源码:
  可以看到,十分简单粗暴,再结合一下 int ,不知道大家是否已经发现了问题?
  不卖关子了。
  int 的最大值是(2^31) -1,而最小值是-2^31,所以按照 abs 的逻辑,如果a是最小值,则最小值前面加个负数就变成了 2^31,而 int 所能表示的最大值是 (2^31) -1,这比最大值还大了个 1,导致向上溢出,所以此时得到的结果还是最小值。
  你可以试着运行一下上面的结果,所以说 Math.abs 得到的不一定是正数!所以 RocketMQ 的这个判断是有必要滴。
  再解释一下为什么 int 最小值取绝对值还是等于它本身。
  int 是 32 位,为了便于演示,我就拿 8 位来举例子,反正道理是一样的。
  在 Java 中的数字的实现都是有符号位的,不像 C 有个 unsigned 来表示无符号,有符号的数字实现是用最高位来表示符号位,1表示负数,0表示正数。
  回到上面的例子,要表示的正数比最大值还大1,那就把最大值加个1呗。
  图中就是向上溢出得到了最小值,所以最小值取绝对值得到的值比最大值大一,导致向上溢出,又变成了最小值。
  因此  Math.abs(Integer.MIN_VALUE) = Integer.MIN_VALUE
  那为什么 8 位表示的是-128到127而不是-127到128?
  8位二进制,一共有 2^8=256 个坑位,所以能表示 256 个数字,理论上随便怎么表示都ok,你表示-254~1都行。
  但是我们规定无符号数是 0~255,有符号数规定是-128 ~ 127。
  如果有符号数要规定成-127到128并不是不行,但是这样就比较麻烦。
  按照-128 ~ 127这样的实现, 我们只要通过最高位就可以判断一个数的正负 ,而-127~128就需要排除128这个特例,也就是之前只需要判断最高位,现在变成需要判断最高位为 1 且其它位不全是 0 才是负数。
  这样电路设计也要变复杂了,所以我们规定是 -128到127,32位也同理。
  Math.absExact
  这种出错了但是没有提示的 Math.abs 肯定是不好的,所以在 JDK 15 出了个  Math.absExact
  也就是会抛错,而不是返回个错误的结果。  最后
  有位群友还说面百度的时候被问过。
  面试题是真的多,防不胜防,所以要抓清源头和本质,以不变应万变。
  转载自:https://mp.weixin.qq.com/s/HYM_lblCGYEwnuzM83Y2HQ
  原创:yes的练级攻略

原神2。4版本抽卡建议,优先钟离,其他角色视情况选择性放弃派蒙我们感受到了旅行者对角色复刻的热情!冻梨但这一次性3个,有点儿离谱呀前瞻结束后,冻梨就去看了各原神论坛,想看看玩家对高频复刻扎堆的看法,不出我所料,叫苦声居多。2。4版本原石产TES卫冕德杯冠军,Knight本来是感觉可以30的,状态没调整好2021德杯决赛已经结束了,对于这场比赛,确实给很多人带来了意外之喜,一方面很多人看到了这支全新的FPX充满了年轻的冲劲,另外一方面也看到了今年这支TES能在重压之下抗住并逆转命运行军会消耗体力?重返帝国告诉你在绝大多数SLG中,行军被划分为任务。一旦玩家发出命令,只能等待指令的完成,不能中途修改命令。有些甚至不允许中途退出。只有当军队完成任务时,玩家才能发出下一条指令。而在重返帝国中,中国新骄傲!比游戏业穷百倍的动画圈,实现了国漫3A级飞跃这两年,国内游戏业对于打造3A的执念愈发呼之欲出。头部大厂热衷海外建厂,甚至一度倒逼地头蛇育碧加薪留人。但GameLook发现,反倒是曾被高薪抢人的影视动画圈,正在先一步赶超游戏业外媒Kotaku盘点2021年游戏界最令人失望的那些事情这个2021是一秒钟都待不下去了!外媒Kotaku盘点了一些2021游戏界令人失望的事件,让我们一起花点时间回顾一下!1。动视暴雪CEO怎么还没下台?动视暴雪对女性的糟糕待遇看上去王者荣耀墨家机关道争锋!盘点那些单挑中强势的英雄王者荣耀中的墨家机关道地图是单挑模式地图,在这个模式中玩家仅需要跟敌方一个英雄对抗,而不需要考虑有可能会有敌方其他英雄的gank,是很好的一种锻炼英雄熟练度的方法。今天我们就来盘点2021年度游戏科技行业发生了哪些大事?有没有你喜欢的游戏产品?我们回顾了2021年游戏科技行业的流行趋势,发现很多原本今年计划推出的产品都推迟到了明年,在第9代游戏主机发布一年的这段时间里,行业里最大的事件就是持续的芯片产能不足给供应链带来的实体点卡已成时代的眼泪?非遗大师亲手设计,典藏版铜雕点卡问世现今时代,网络的快速发展,手游市场开始兴起,加上手机支付功能变得越来越成熟,大多数手游都是采用免费游玩内购收费的方式,这种方式对于玩家来说快捷方便,而游戏厂商的收益也更高。已经没有三国杀人造膀胱局,烧条大师非他们莫属卡牌游戏的规则不一定是各类游戏中最费解的,但一定是最复杂最冗长的,三国杀也不例外。当你真的入坑了三国杀,才会发现少年时买的纸质版送的那薄薄的说明书很多问题都解释不清,在其中最考验理哈利波特手游1月上分环境大变动!卢娜补强,甜点大师调整凤凰哈利波特魔法觉醒1月更新中,卡牌变动的内容也是比较多的。今天就来给大家简单分析一波,上分大环境即将迎来洗牌,玩家们也要及时调整卡组内容才能更加有效率地上分!白鲜香精瞬间治疗量提升,原神2。4版本飞彩镌流年新角色申鹤新武器息灾曝光小伙伴们,大家好!今天为大家带来原神2。4版本飞彩镌流年,将于2022年1月15日上线,小编为大家带来新角色和武器,我们一起来看下吧。华彩难及之处,诡谲的敌影伺机而动。白昼永无之境
苍之骑士团2手游第一批ssr级角色芙缇怎么样?如何提升芙缇胜率手游巴士(www。shouyoubus。com)2021年12月10日讯苍之骑士团2手游第一批ssr级角色芙缇怎么样?如何提升芙缇胜率?在苍之骑士团2这款手游中有很多玩家都对芙缇的狙击精英5正式公布!2022发售首发加入XGP今日,第三人称射击游戏狙击精英5正式公布,并放出了首个揭秘预告,本作将于2022年发售,首发加入XboxGamePass,登录XboxOneXSXS和PS4PS5以及PC平台。St和平精英皮肤返场来袭,虎牙三大一哥主播齐聚轮番带货众所周知,伴随着电子竞技行业的飞速发展,国内的手游市场也是在不断壮大,出现了很多热门的手机游戏,而说到热度最高,最受欢迎的一款FPS手机射击游戏,在小编看来绝对非和平精英莫属了,和比赛BP我上我也行?预测出场阵容,一积分就能兑换荣耀水晶王者荣耀kpl秋季赛正在火热进行中,不得不说这赛季的局势还非常明显的,强的队伍在这次秋季赛在实力方面,有很大的上涨,而弱的队伍在这赛季更加没有优势。而这些队伍之间的差距之所以可以那百家大战狗妹六连跪,面对官方安排直接破防,深夜露脸直播开骂百家大战是虎牙平台举办的王者荣耀大型赛事,此次赛事有饿了么虎扑懂球帝积目微光realme虎牙开黑七大平台旗下组建战队强势参赛,同时虎牙平台对这次百家大战也十分重视,为了提升七支战队怒火一刀新手的基本玩法攻略你都知道吗?哈喽大家好,我是爱玩游戏的小编,本期给大家分享怒火一刀的新手攻略。让我们来看看吧!游戏内会员等级分11档,后期先手动把青铜会员义务做了到达青铜会员。假如想尽快提升会员等级可选择档位热血传奇冰咆哮耗蓝高伤害低,它的大优势你都知道吗?嗨咯大家好,我是爱玩的小青,今天又跟大家见面了,今天我们来盘点下法师的终极大招冰咆哮。热血传奇相信现在不少人对这个的印象也是鸡肋技能,这算是对这个技能的最大的误解了,相信也有不少的黑客帝国觉醒虚幻5体验试玩视频现实级逼真画面今天,Epic放出了黑客帝国觉醒虚幻5体验的Demo。目前已经可以在PS5XboxSeriesS和XboxSeriesX上预载,感兴趣的玩家们不要错过。同时我们也整理了14分钟的试吃鸡新皮肤星兔领航!头套家族喜迎新成员,外形犹如玉桂狗务实不浮夸!我是你们的情报小能手,微笑十倍镜。吃鸡手游和平精英的军需种类繁多,不仅有大受好评的小裙子,而且还有一些动物主题的连体服,对于玩家而言想要拿到自己喜欢的军需只有一个方法,原神获评TGA2021最佳手游奖!腾讯尴尬了没上榜今日,游戏界盛典的TheGameAwards(TGA2021)颁奖典礼已经正式结束,双人成行不负众望拿下了分量最足的年度游戏大奖,死亡循环极限竞速地平线5等游戏也收获颇丰。而在这些NV无缘晋级周决?引发后续连锁反应,网友必须拿大分就在近日由虎牙平台进行全程直播的和平精英PMGC全球总决赛于十一月三十日正式拉开序幕,期间来自国内外四十支顶尖职业战队齐聚一堂,并且为了最终的冠军奖杯展开激烈争夺。众所周知和平精英