2019年12月

负数为什么要用补码来表示?

上篇文章讲了负数在计算机中是怎么存储的。看完之后,应该对原码,反码,补码有了基本的了解了。今天,我们深入探讨一下,为什么计算机中要用补码来表示负数?首先,我们应该清楚,原码是方便给人看的。看到一个数的原码,我们就能根据符号位和后边的二进制位,计算出这个数的实际值。为了简单起见,我以一个字节8位来举例,如// 1 的原码 ,最高位0代表正数 0000 0001 // -1 的原码, 最高位1代... 阅读全文->

负数在计算机中是怎么存储

今天,发生一件非常有趣的事情。公司同事问了我一个问题:为什么 2.0 - 1.1 = 0.89999999 呢?不应该是 0.9吗?原来是,他问了周围一圈的同事,都给他的是同一个回答,说这是精度问题。他百思不得其解,怎么就会产生精度问题呢。再问,就没人知道原因了。然后,我就看到了他抱着一本厚厚的书在看。拿过来一看,是一本Java书,厚厚的六百多页,这还仅是第一卷。哟呵,这是准备大干一场啊。看... 阅读全文->

为什么0.1+0.2=0.30000000000000004

​阅读本文大约需要8分钟...问题在计算机的世界里,可能有很多常人无法理解的事情。比如 0.1 + 0.2 = ?。来,告诉我你的答案。有的朋友看到这就迫不及待的说,这么简单的问题,很明显等于 0.3 啊,小学生都会算的好伐。你这是在侮辱我的智商?好吧,我来告诉你一个打脸的事实,0.1 + 0.2 还真不等于 0.3 。先别急着反驳我。打开你的任意一个浏览器(我用chrome做演示),... 阅读全文->