计算机的补码运算在计算机中,补码的作用是什么?

电脑教程012

计算机的补码运算在计算机中,补码的作用是什么?,第1张

可以通过补码运算,通过最高位和次高位的进位相异或可以判断计算结果是否溢出。

计算机中的有符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。

在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。

正整数的补码是其二进制表示,与原码相同。

例:+9的补码是00001001。(备注:这个+9的补码是用8位2进制来表示的,补码表示方式很多,还有16位二进制补码表示形式,以及32位二进制补码表示形式,64位进制补码表示形式等。每一种补码表示形式都只能表示有限的数字。)

负数解释:

求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。

同一个数字在不同的补码表示形式中是不同的。比如-15的补码,在8位二进制中是11110001,然而在16位二进制补码表示中,就是1111111111110001。以下都使用8位2进制来表示。

补码,在计算机中,有所应用。

但是,补码的来源,是由算法导出的,和计算机无关。

 

比如,一个小孩,很小的。

他只认识 100 个数,也不会做减法。

那么,减一,就可以告诉他,用加 99 代替:

36 - 1 =  35

36 + 99 = (1) 35

忽略进位,结果不是一样的吗?

99,就是-1 的补数。

算法: 补数=模+负数。

其中的“模”,是计数系统中,数字个数的总数。

 

补码,也就是二进制的补数。

八位二进制,共有 256 个数字,模,就是 256。

255(1111 1111),就是-1 的补码;

254(1111 1110),就是-2 的补码;

... ...

128(1000 0000),就是-128 的补码。

算法:

补码=256 +负数。

正数,直接参加运算即可,用不着转换。