发布网友 发布时间:2023-10-14 02:05
共4个回答
热心网友 时间:2024-12-04 05:50
计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,为了能方便的与二进制转换,就使用了十六进制(2 4)和八进制1.数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的补码了。
⑴使符号位能与有效值部分一起参加运算,从而简化运算规则.
⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计 所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码。
1.十进制分数补码可以先将分子和分母分别表示成二进制数,然后计算出二进制小数,再按下面第三步的方法将求出小数的补码形式。
37/64=100101B/2^6=0.100101B
-51/128=110011B/2^7=0.0110011B
2.十进制小数的补码也应该先将其转换成二进制小数,再按下面第三步的方法将求出小数的补码形式。
0.375=0.011B
0.5625=0.1001B
3.将二进制小数对应的补码求出
[37/64]补码=[0.100101B]补码=0.1001010B
[-51/128]补码=[0.0110011B]补码=1.1001101B
[0.375]补码=[0.011B]补码=0.0110000B
[0.5625]补码=[0.1001B]补码=0.1001000B
热心网友 时间:2024-12-04 05:50
在计算机系统中,数值,一律用补码来表示和存储。
原码和反码,都是没有任何用处的。
【补码】,其实,就是一个【代替负数进行运算的正数】。
而正数,直接就可以运算,不需要由谁来代替。所以,正数,它就没有补码!
那么,关于正数补码的讨论,都是无稽之谈。说正数的补码与原码反码相等,更是无聊至极!
利用补码,可以把负数,用正数代替,也就把减法,转换成加法来运算。
这样就统一了加减法运算,因此,就可以简化计算机的硬件。
而原码反码并不具备这种功能。所以,计算机只是使用补码,并不用原码和反码。
--------
补码,怎么就能【代替负数】呢?
这种现象,源于数字的周期性。
先用十进制来说明:
24 - 1 = 23
24 + 99 = (1) 23
舍弃进位,-1 就可以用 +99 来代替。
-1 就和 +99 是等效的。
这里用的是 2 位 10 进制数,计数周期就是 10^2 = 100。
计算时忽略这个周期,负数就可以用正数代替。
+99 就是-1 的补数。
计算公式:补数=负数+周期。
--------
计算机用二进制,补数,则称为补码。
8 位 2 进制的计数范围是:0000 0000~1111 1111(十进制255)。
8 位 2 进制的计数周期是:2^8 = 256。
-1 的补码,就是:-1 + 256 = 255 = 1111 1111。
-2 的补码,就是:-2 + 256 = 254 = 1111 1110。
。。。
-128 的补码,是:128 = 1000 0000。
以上,就是 128 个负数的补码。
而 0000 0000~0111 1111,则不需转换,直接代表零和正数。
--------
计算示例: 7-3 = 4。
用补码的计算过程如下:
7 =0000 0111
-3 的补码=1111 1101
--相加-------------
得 (1) 0000 0100 = 4
舍弃进位,只保留八位作为结果,就求出了 7-3。
热心网友 时间:2024-12-04 05:51
十进制,叫做补数。热心网友 时间:2024-12-04 05:51
在二进制里