安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

为什么aampampgt0,bampampgt0,ab却

10月10日 圆通道投稿
  本文主要谈谈计算机运算溢出问题
  先来解一道简单的题目:
  编写程序计算两个整数的和。相信学过任何一种编程语言的同学都可以轻松的写出代码来实现这个求和。
  下面是C语言的代码实现:
  intsum(inta,intb){
  
  }
  intmain(intargc,charargv〔〕){
  if(argc3){
  return1;
  }
  intaatoi(argv〔1〕);
  intbatoi(argv〔2〕);
  printf(ad,bd,sumd,a,b,sum(a,b));
  return0;
  }
  代码非常简洁,这份代码可以用gcc或者MSVC编译后执行。
  下面是gcc编译运行后执行12的结果:。sum12
  a1,b2,sum3
  一切正常,我们再换一组数据试试:。sum21474836471a2147483647,b1,sum2147483648我们看到出问题了,a和b都是正数,结果sum却是负数。为什么会产生这种问题呢?实际上是计算产生了溢出,并且这种溢出计算机不会产生任何错误信号。
  产生的原因是由于计算机表示数据的位数是有限的。在很多情况下,这种溢出是致命的,比如金融交易,科学运算等。所以我们有必要对其进行判断和处理。
  我们知道int在32位和64位系统中都是4个字节表示的。解决上面溢出问题的一个最简单思考就是用更多的位数表示运算后的结果,比如用8个字节来表示求和后的结果。但有时候我们并不希望这样做,而希望能够判断计算是否产生溢出,从决定下一步操作。那该如何判断呢?
  首先需要明确的是无符号数运算和有符号数运算的判断方法是不同的,下面逐一分析。
  1。无符号数加法溢出判断:
  对于无符号数相加如果产生溢出,则势必会向前产生进位,假设这个进位用z表示(z1表示有溢出,z0表示无溢出)。假设有两个n位的无符号数a,b相加(0a,b2n),那么为了保证其求和后结果不溢出,则至少需要n1位来存储运算结果。假设运算后的结果表示为M。而用n1位存储的运算结果为Q。
  那么:Qz2nM。
  显然,如果发生溢出(z1)则必有
  0Mpdatatrack30所以对于Mab,如果未发生溢出则M2n,而发生溢出的判断条件为:
  M
  2。有符号数加法溢出判断:
  对于n位有符号数a,b(2(n1)a,b2(n1)1)求和,我们依然用M表示其运算后的结果。显然M的范围为〔2(n1),2(n1))。而ab表示的最大范围为〔2n,2n2〕。因此为保证其不溢出也需要n1来存储运算结果。
  我们仍然用Q表示其n1的运算结果。那么可得:
  Q2(n1)(也就是Q大于等于M的上限),那么意味着ab产生了正向溢出。(1)
  QM(也就是2(n1)Q2(n1)),那么计算结果没有溢出。(2)
  Q2(n1)(也就是Q小于M的下限),那么计算结果产生了负向溢出。(3)
  对于(1),一定有a0b0。而Q2nM。又因为(ab)的范围为〔2n,2n2〕,所以M必小于0。
  对于(3),一定有a0b0。而Q2nM。又因为(ab)的范围为〔2n,2n2〕,所以M必大于0。
  总结对于有符号数判断其是否溢出的条件为:
  若a0b0并且(ab)0,则发生了正溢出。
  若a0,则发生了负溢出。
  有了上面的知识,我们再回过头看文章开始时的例子:a2147483647,b1,sum2147483648我们现在可以判断其发生了正向溢出,因为a为整数,b为整数,给定了a0b0,其计算结果sum0,所以产生了正向溢出。
  如有兴趣大家也可以试试无符号数加法,看看能否根据文中提供的判据判断出无符号加法溢出的情况!
投诉 评论 转载

安卓手机的开端HTC手机发展史回顾作为较早一批推出智能手机的厂商,相信有许多资深的数码爱好者使用的第一款智能手机都是HTC所打造的。当然,对于这些资深玩家来说,可能宏达电这个名字对各位来说更加熟悉和亲切。曾经的……如何把两个视频连接起来?用剪映app进行编辑就可以啦。希望我的回答对你有用哦我自己用的剪映,非常简单好用,拼接、特效,转场等都挺多的,推荐用剪辑师剪辑我自己用的是美图秀秀或剪映……臻享至简影音魅力惠威M200Bar无线Soundbar有源音纤巧好声典范惠威M200Bar无线Soundbar有源音响如今,轻薄的大尺寸智能电视几乎成为了许多家庭的标配,随着视像呈现越来越高清,其视觉冲击力已不亚于电影院的观赏效果……参考变形镜头设计,新手机镜头影像尺寸或许能激增11倍想要提高数码相机的拍摄品质,加大感光元件尺寸和改善镜头光学结构是最有效的途径。不过时下流行的拍照工具智能手机却因为手机的尺寸限制,让这两个物理升级方法有点此路不通,各路手机厂商……iOS15。4耗电发热,使用两天后,我的iPhone13pr大家好我是共醉明月,今天继续聊聊苹果iOS15。4正式版的问题,在iOS15。4正式版推送后,虽然有不错的戴口罩解锁功能,但同时也带来了不小的副作用,很多用户的iPhone手机……为什么aampampgt0,bampampgt0,ab却本文主要谈谈计算机运算溢出问题先来解一道简单的题目:编写程序计算两个整数的和。相信学过任何一种编程语言的同学都可以轻松的写出代码来实现这个求和。下面是C语言的……6G的研究已经在全速进行我们仍处于5G推广的早期阶段,其技术发展仍领先许多年。但是,按照开发新一代无线通信的传统10年周期,对6G的研究已经在全速进行。世界各地的6G计划,包括第一个,6GEAN,由芬……国内手机流量使用量榜单,西藏高居第一上海倒数第二最近,工信部公布了《2021年18月份通信业经济运行情况》,里面提到的内容很多,这里不一一赘述。这一次,我们想从中找到一个答案,那就是:国内各省市中,手机用户的流量使用量……升级5G套餐到底值不值?大流量用户有话说不如39元套餐伴随着5G基站覆盖越来越全面,很多人对于使用5G套餐已经跃跃欲试。5G的好处大家都知道,但是否适合所有人,值得仔细推敲。最近身边的朋友刚刚升级了5G套餐,128元起的套餐……国家计算机病毒应急处理中心监测发现16款违法移动应用新华社天津4月8日电(记者张建新、梁姊)国家计算机病毒应急处理中心近期通过互联网监测发现16款移动App存在隐私不合规行为,违反网络安全法、个人信息保护法相关规定,涉嫌超范围采……老赖,老赖,社会上为什么这么多老赖?究竟是什么原因造成的?失信被执行人形成的原因是非常复杂的。分析起来,大致有这样一些原因。0、法律法规尚不完善,制度有漏洞可钻,还没有打到老赖的七寸,是最根本的原因。从近年的形势看,法院系统的确……阿里供应链是什么?怎么加入?本文来自艾优原原未经允许禁止转载电商行业发展至今,许多朋友都会有或多或少的了解。但是关于阿里供应链有可能只是在听别人说或是自己偶然看见的项目。至于阿里供应链的服务费收益还……
华为芯崛起!避开国外壁垒,布局光刻胶产业链三星GalaxyZFold35G12GB512GB售价149拍照最强的是哪个手机?法国出台计划推进人工智能发展美国公司如何注册?美国公司如何申请亚马逊账号?一个以委托开发恶意爬虫软件为由悔约的案例助听器取下来听力会有变化吗?最便宜的骁龙888Plus手机下周见,抢先iPhone13P微单相机和单反相机哪种好用点?世界睡眠日,小犬智能教您如何利用智能家居来提高睡眠质量?iPhone忘记ID密码卡在激活怎么办?iBypasser3可在水下打游戏的机械键盘!雷柏发布V510合金版防水背光机械赵丽颖终于摆脱穿搭买家秀形象衣品提高不少时尚感如此不差钱保护水资源的演讲稿删除的文件怎么找回(删掉的文件在哪里找到并恢复)威廉王子与英格兰国足谈如何应对本月底世界杯前的心理挑战谁的虚拟,谁的现实给老板提建议我被停职了别吐槽老板五倍造句用五倍造句大全等待生长林孝埈已取得代表中国队参加国际比赛的资格看在眼里记录生活成语《一暴十寒》的故事

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利