文章目录:
- 1、计算机内部如何存储数据,关于源码、补码的问题!
- 2、两个补码相加,如果符号位有进位,则舍去进位,假如机器位数为8,请举例说明.
- 3、符号位相加的进位和数值部分最高位相加的话进位
- 4、两个补码表示的数相加时,如果最高位(符号位)有进位,能不能明白点说下?
计算机内部如何存储数据,关于源码、补码的问题!
1.
补码
(1)正数的补码
与原码相同。
【例1】+9的补码是00001001。(备注:这个+9的补码说的是用8位的2进制来表示补码的,补码表示方式很多,还有16位2进制补码表示形式,以及32位2进制补码表示形式等。)
(2)负数的补码
符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。
同一个数字在不同的补码表示形式里头,是不同的。比方说-15的补码,在8位2进制里头是11110001,然而在16位2进制补码表示的情况下,就成了1111111111110001。在这篇补码概述里头涉及的补码转换默认了把一个数转换成8位2进制的补码形式,每一种补码表示形式都只能表示有限的数字。
原码
原码(true
form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面
原码
增加了一位符号位(即最高位为符号位),该位为0表示正数或者0(当为0时第一位不能为1,因为如果把10000000也当成0会造成和-128原码冲突),该位为1表示负数,其余位表示数值的大小。
反码
所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
2.
(1)、在计算机系统中,数值一律用补码来表示(存储)。
主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补
码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
(2)、补码与原码的转换过程几乎是相同的
3.
2.^4+2.^1
=
17
表示
17
谢谢
采纳
两个补码相加,如果符号位有进位,则舍去进位,假如机器位数为8,请举例说明.
首先要掌握“补码运算”的意义。
就是:用加法器代替减法器,简化硬件。
因为:作加法,加多了,就可以呈现出减法的作用。
比如两位十进制,-1 可以用 +99 代替。
24 - 1 = 23
24 + 99 = (1) 23
舍弃进位,只取两位的结果,那么,减法就可用加法代替了。
你要注意了,进位,必须舍弃。
谁要讨论补码运算的进位,就是自寻烦恼!
--------------
八位二进制:0000 0000~1111 1111。
相当于十进制:0~255。
此时,-1 就可以用 1111 1111(255) 代替了。
1111 1111(255),就是-1 的补码。
1111 1110(254),就是-2 的补码。
。。。 。。。
1000 0000(128),就是-128 的补码。
0~127,还是原来的正数。
--------------
那么,问题就来了:
正数+正数,如果超出了 127,结果,就是负数。
结果的符号不合理。 这就是溢出。
--------------
同理:负数+负数,超出了 255,进位再舍弃,就是正数了。
这也是溢出。
还有:正数-负数、负数-正数,也可能溢出。
能够产生溢出,只有这四种算法。
--------------
溢出,就是符号异常。
用二进制数的运算,来判断进位、溢出,书上都有例题。
符号位相加的进位和数值部分最高位相加的话进位
是没有溢出.
次高位向最高位有进位,最高位向上也有进位,结果不发生溢出.
可以进行验算:
补码:11011010,求出原码:10100110B=-38D
补码:11101101,求出原码:10010011B=-19D
-38-19=-57
1101 1010 +1110 1101 =1 1100 0111,最高位自然丢失,=11000111
求出原码:10111001B=-57D
答案一致,计算结果正确,不存在溢出.
两个补码表示的数相加时,如果最高位(符号位)有进位,能不能明白点说下?
既然是最高位,进位当然要舍去了,比如说两个补码的最高位都为1,1+1=10,结果只能取零,而1就被舍去了啦.
2.^1=17表示17谢谢采纳两个补码相加,如果符号位有进位,则舍去进位,假如机器位数为8,请举例说明.首先要掌握“补码运算”的意义。就是:用加法器代替减法器,简化硬件。因为:作加法,加多
代替了。你要注意了,进位,必须舍弃。谁要讨论补码运算的进位,就是自寻烦恼!--------------八位二进制:0000 0000~1111 1111。相当于十进制:0~255。此时,-1 就可以用 1111 1111(255) 代替了。1111 1111(255),就是-1 的补码。111