计算机基础
文章平均质量分 54
keke_Xin
这个作者很懒,什么都没留下…
展开
-
Math.abs()绝对值取到的数不一定是正数
Math.abs()注释:Note that if the argument is equal to the value of Integer.MIN_VALUE, the most negative representable int value, the result is that same value, which is negative.源码:public static i...原创 2016-12-14 22:37:17 · 2132 阅读 · 0 评论 -
什么是补码、反码、负数在计算中如何表示
负数在计算机中如何表示?举例来说,+8在计算机中表示为二进制的1000,那么-8怎么表示呢?很容易想到,可以将一个二进制位(bit)专门规定为符号位,它等于0时就表示正数,等于1时就表示负数。比如,在8位机中,规定每个字节的最高位为符号位。那么,+8就是00001000,而-8则是10001000。但是,随便找一本《计算机原理》,都会告诉你,实际上,计算机内部采用2的补码(Two's...原创 2016-12-14 22:39:38 · 549 阅读 · 0 评论 -
计算机是如何计算乘法除法的(实际上都是转换为二进制加法计算)
http://blog.csdn.net/blues1021/article/details/42849183前言虽然我们在编程语言中可以直接使用+-/,但是对某些要求不能用/的情况下,我们有必要了解一下计算机是怎样完成乘除法的。首先,我们要明确一下计算机所能完成的最基本操作是:+(-)和左移右移。虽然ISA中一般都有MUL类指令,但是这些经过译码之后最终的元操作还是加法和移位指令...原创 2016-12-14 22:46:20 · 7454 阅读 · 0 评论 -
浮点数为什么不精确?为什么银行的金额不能用浮点数计算
浮点数为什么不精确?其实这句话本身就不精确, 相对精确一点的说法是: 我们码农在程序里写的10进制小数,计算机内部无法用二进制的小数来精确的表达。什么是二进制的小数? 就是形如 101.11 数字,注意,这是二进制的,数字只能是0和1。101.11 就等于 1 * 2^2 +0 *2^1 + 1*2^0 + 1*2^-1 + 1*2^-2 = 4+0+1+1/2+1/4 = 5.75...原创 2016-12-14 22:52:57 · 3564 阅读 · 0 评论