专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

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的练级攻略

详解静步的作用,合理利用静步技巧,成为高手必经之路很多新手朋友在玩CSGO的时候,并不总是知道什么时候该静步,什么时候不该静步。他们真的不明白什么时候该静步。在许多情况下,您可以获胜的许多情况是今天就来探讨一下CSGO中静步的问题我心目中的电竞国家队,你们有没有去投票呢?冬日生活打卡季明年22年,亚运会将在杭州举办。而在今年11月的时候,杭州亚组委公布了一件事,22年第19届亚洲运动会,英雄联盟,王者荣耀,和平精英,FIFAOnline4(亚运版本云顶最强阵容又来啦,黑白魔法师秒杀全场,轻松上分系列兄弟姐妹们,克拉师又来了。大师以上可以参考这套上分阵容说1。23c版本的现版本双城中,最多人的阵容就是黑白魔法师的系类。选择44系类的黑白魔法师,成型了简直是稳稳的吃分。也不是完全王者荣耀皮肤优化,嫦娥源梦3号上线,末日机甲祈雪祝灵年末公布相信小伙伴们都知道,王者荣耀中的一些皮肤因为上线时间太早所以显得质量比较一般,所以需要进行调整优化,最近官方就公布了日程。最近的当然就是嫦娥拒霜思皮肤,这款皮肤属于源梦系列,也就是王者荣耀英雄调整,雅典娜移除大招减速效果,新英雄暃全面削弱相信小伙伴们都知道,王者荣耀新版本很快就要上线了,最近体验服中的英雄也有很多的调整,现在赶紧来看看吧!首先就是雅典娜。雅典娜这个英雄在当前版本中的胜率一直在战士中的排名不低,但出场jojo第六部王者归来?衍生吃鸡游戏爆火,新角色迪亚波罗加入最近JOJO的奇妙冒险石之海已于12月1日在B站上线12集,目前在豆瓣上评分为高达9。7分。JOJO的奇妙冒险石之海是jojo奇妙冒险的第六部,前几部作品早就使得jojo系列拥有了韦神的4AM没能创造奇迹,Tyloo却在CSGO不断突破,成为FPS至高者说起来,最近绝地求生PGC2赛事正在进行中。只不过,本次参赛队伍并没有韦神的4AM,所以或多或少让人感觉该赛事在国内的讨论热度并不是很高。毕竟,韦神的4AM绝对算得上是流量与实力兼侠客冰雪冰雪单职业传奇手游年末巨作,新手攻略哈喽,大家好!我是动若,又跟大家见面了。今天动若给大家带来了最近新上线的冰雪传奇手游侠客冰雪。(文末有惊喜)全新玩法,做任务即可获得免费赞助只需玩家动动自己的手指,各种会员赞助应有手游LOL2。6版本更新内容前瞻(1)新英雄正义天使凯尔与堕落天使莫甘娜登场,这对天使姐妹降临峡谷,召唤师们可以前往正义之路活动探索她们的故事。(2)对英雄祖安狂人蒙多医生进行了视觉和玩法更新,全新模型和技能将带零之战线电脑版逍遥模拟器电脑上玩零之战线零之战线是一款二次元放置类手游,玩家作为军校毕业的优等生,将指挥武器少女战队与被污染的机械兽战斗,在夺回地面控制权的同时,迎击与调查隐藏在深处的秘密。现在,为了维护人类的文明,请战那些年玩过的单机游戏01,流星蝴蝶剑,曾经的单机狂潮十几年,网络还不是很发达,我们玩着手柄,玩的是单机游戏。而当时引起了单机狂潮的一部游戏,便是流星蝴蝶,有人说经典,有人说不经典。但经不经典我不管,我是很喜欢这一款。记得在2004年
阴阳师SP金鱼姬技能调整过于离谱加强幅度过于BUG已经超神了阴阳师这次体验服对式神技能和强度方面的调整,如果你把注意力都集中在了荒总身上,那真的是太年轻了,这次SP金鱼姬的加强可以说非常的突然和意想不到,虽然说这式神确实是这些日子比较遇冷,原神新角色,遭遇外服疯狂吐槽原神的2。4版本预热活动以及全球直播活动开启,新版本的两个角色再次成为游戏圈的热门话题。在有关新角色申鹤的服装风波以后,另一以京剧元素为主的新角色云堇也登上了热搜。在YouTube知名狗黑翻唱孤泳者,UZI粉丝都找不出毛病双城之战火,但比双城之战更火的是主题曲孤勇者,除了医生的原唱传播比较广之外,还有衍生了各种翻唱作品和鬼畜作品,比如关于若子欧透和大司炫狗等人的鬼畜作品还真不少,不过这几个人现在几乎再玩经典百战天虫,却找不回曾经的味道百战天虫作为一个经典游戏系列肯定是许多小伙伴们的童年回忆吧,这个最早从1994年就已发行的游戏系列作品众多,在初代就已经确立了国内玩家熟知的flash小游戏猫狗大战那样回合制轮流攻还得XYG捍卫KPL荣光!两连胜出线形势大好,大仙我有点飘了王者荣耀挑战者杯选拔赛进入第二个比赛日,XYG迎来了第三场比赛,对手是次级联赛时期的老对手东莞Wz。当年XYG进入KPL的时候就是战胜了东莞Wz,这也是一场复仇之战。虽然看上去东莞AG转会期不做买人打算,爱思重回首发,Cat转型幕后帮助复盘AG超玩会因为在秋季赛季后赛一轮游,所以遗憾没能参与到王者荣耀首届挑战者杯。其实从AG止步秋季赛十强之后,网友无不为AG殚精竭虑,总是在思考AG该如何改变将会变强。所以转会期还未开王者荣耀S26赛季前瞻,芈月即将崛起,凝冰之息或成为核心装备Hello,大家好,这里是兔八哥聊游戏!关注我,为您带来不一样的游戏理解!王者荣耀S26赛季的更新时间越来越近了,在最后的这几天时间里面,可能大部分的小伙伴都在为新赛季做准备了。特LOL星穹秘宝比惨大会来袭!欧皇开出龙瞎和龙刀,非酋酸了前言作为MOBA游戏的绝对王者,英雄联盟已经火了十个多年头,笔者当时入坑的时候游戏登录界面还是劫,因为当时劫刚刚加入到游戏,那么小伙伴们还记得自己在哪个新英雄上架的时候入坑的吗?不幻塔单人极限挖矿,1分钟都不浪费,装备4星轻松就能上最近大家在幻塔里挖矿挖得怎么样了?估计多少有点辛苦吧?虽然幻塔项目组很良心的设定了经验可以转换继承,但前期的积累是跑不了的,而装备想要升级到4星需要的矿石材料数量并不低。加上玩幻塔LOL手游两个致命错觉,自己输出高还是对手太笨?斗鱼灵药全中在英雄联盟手游上线之后,受到了很多玩家的喜爱。尤其曾经端游的老玩家,对于他们来说,从电脑转移到移动端上玩游戏,反而更加方便了。现在很多老LOL玩家表示,玩游戏时间长了经常遇到一些错大话西游2全服第一的二转大力魔?攻击力11万速度1100大家好,欢迎来到今天的大话西游2故事汇。大话西游2作为一款成功运营将近二十年的经典网络游戏,大力玩法其实一直贯穿于游戏的历史中。自从龙族登场后,大力玩法现在普遍存在于五开玩家中了。
友情链接:快好知快生活快百科快传网中准网文好找聚热点快软件