原码, 反码, 补码,移码和二进制数四则运算

如题所述

在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.

一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.

比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。

那么,这里的 00000011 和 10000011 就是机器数。

例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1

在探求为何机器要使用补码之前, 让我们先了解原码, 反码和补码的概念.对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式.

原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:

第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:



原码是人脑最容易理解和计算的表示方式.

反码的表示方法是:

正数的反码是其本身

负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.

可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算.

补码的表示方法是:

正数的补码就是其本身

负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)

对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.

补码的表示方法是:

不管正负数,只要将其补码的符号位取反即可。

二进制数的算术运算包括:加、减、乘、除四则运算,下面分别予以介绍。

根据“逢二进一”规则,二进制数加法的法则为:

例如:1110和1011相加过程如下:

根据“借一有二”的规则,二进制数减法的法则为:

例如:1101减去1011的过程如下:

二进制数乘法过程可仿照十进制数乘法进行。但由于二进制数只有0或1两种可能的乘数位,导致二进制乘法更为简单。二进制数乘法的法则为:

例如:1001和1010相乘的过程如下:

由低位到高位,用乘数的每一位去乘被乘数,若乘数的某一位为1,则该次部分积为被乘数;若乘数的某一位为0,则该次部分积为0。某次部分积的最低位必须和本位乘数对齐,所有部分积相加的结果则为相乘得到的乘积。

二进制数除法与十进制数除法很类似。可先从被除数的最高位开始,将被除数(或中间余数)与除数相比较,若被除数(或中间余数)大于除数,则用被除数(或中间余数)减去除数,商为1,并得相减之后的中间余数,否则商为0。再将被除数的下一位移下补充到中间余数的末位,重复以上过程,就可得到所要求的各位商数和最终的余数。

例如:100110÷110的过程如下:
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-03-06

原码, 反码, 补码,移码和二进制数四则运算

-----------

你知道的太多了!

在计算机系统中,数值,一律采用补码表示和存储。

  原码和反码,在计算机中,都不存在。

  移码,应用极少。而且,它也不是做计算用的。

数值的运算,都是用补码进行的。

  数值的加减,都以“补码相加”来实现。

  数值的乘除,也就是“补码重复的加减”而已。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网