硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)

为什么8位有符号数的范围为“-128 — +127”?

做而论道_CS:

计算机砖家瞎编的:

机器数真值符号位原码反码取反加一符号位不变正数三码相同符号位也参加计算,[X+Y]补=[X]补+[Y]补,[X-Y]=[X]补+[-Y]补=[X-Y]补。。。

这些,一概无用。

你就是全背熟了、会用了,你也不明白:

减法,怎么就变成加法运算了?

为什么8位有符号数的范围为“-128 — +127”?

做而论道_CS:

八位二进制数,进位就是:2^8 = 256。

如果舍弃了进位,下面这些数,就是负数。

首先,255 (1111 1111),就是:-1。

同理,254 (1111 1110),就是:-2。

。。。 。。。

最后,128 (1000 0000),就是:-128。

-----------------

127 (0111 1111),就不行了。

它相加,不会产生进位 1。

即使你舍弃进位,也就是舍弃一个 0。

所以,127 就当不成负数。

即:0 ~ 127,只能当做它们自己了。

例如:-31 的八位补码是多少?

题解:256-31 = 225 = 1110 0001 (二进制补码)。

完事!

哪里还用什么 “取反加一”?

为什么8位有符号数的范围为“-128 — +127”?

做而论道_CS:

你看吧,本来是做 “无符号数” 相加,

丢了进位,就成了 “有符号数” 相减!

由此可知,所谓的 “有符号数、无符号数、符号位”,

纯粹就是计算机砖家在那瞎掰!

二进制数,它就是实实在在的【数】,什么符号都没有!

二进制数,和十进制数一样,都是正整数。

砖家所说的“有符号数、无符号数”,并没有任何理论。

只是在你 “弄丢了进位时”,才会出来 “负数” 和 “减法” 。

是正数,还是负数?

关键是你的算法!

算法,才是计算机的灵魂。

二进制数,它就是普通的数,没有什么可忽悠的。

为什么8位有符号数的范围为“-128 — +127”?

做而论道_CS:

计算机中有个加法器,其运算规则是:逢二进一。

找两个无符号数相加,列竖式如下:

0 1 0 1 = 5

+1 1 1 1 = 15

-----------

进 1、0 1 0 0 = 16 + 4 = 20

这就是 “无符号数” 的加法:

5 + 15 = 16 + 4 = 20。

计算完全正确!

-----------------

但是,如果你忽略了进位呢?

(或者说:故意舍弃了进位。)

这就少算了 16 !

那么就是:5 + 15-16 = 5-1 = 4。

此时的 +15,就相当于-1 了!

为什么是-1 ?

因为你:舍弃了进位,少算了 16。

所以有:+15-16 = -1。

加法的竖式,依然如下:

0 1 0 1 = 5

+1 1 1 1 = 15 (=-1)

-----------

略掉、0 1 0 0 = 4

但是,此时,这可就是【减法运算】了。

Could not find main class

qq_50569841:

确实是jdk版本问题,方法很有效。

随便看看