二进制反码运算法则,二进制反码运算举例

最近在看计算机网络的相关知识,看到了运输层相关的知识,看到UDP检验和然而却看不懂什么意思!所以只好百度一下二进制

反码运算究竟是如何运算。

首先在计算机中所有的数据都是以二进制的形式存储的,正数和负数的区别仅仅是符号位的区别,正数的符号位是0,而负数的符

号位是1,然后正数的反码和补码都和原来一样,而负数的反码是符号位不变,其他按位取反,补码是在反码的基础上加1.

例如:18的二进制数是010010,最前的一位是符号位,反码010010,补码010010

          -18的二进制数是110010,反码是101101,补码是101110

下面是反码运算:

0和0相加是0,0和1相加是1,1和1相加是0但要产生一个进位1,加到下一列。如果最高位相加后产生进位,则最后得到的结果要加1。

PS:

1.反码运算时,其符号位与数值一起参加运算。 2.反码的符号位相加后,如果有进位出现,则要把它送回到最低位去相加(循环进位)。 3.用反码运算,其运算结果亦为反码。在转换为真值时,若符号位为0,数位不变;若符号位为1,应将结果求反才是其真值。(这里求反不包括符号位) [例1] 已知X = 01101 , Y = 0 0110 , 用反码计算Z = X-Y。 解: [X]反 = 01101,[-Y]反 = 11001,则[Z]反 =[X]反+[-Y]反 = 01101+11001+1(循环进位)= 00111 , 其真值为Z = 00111。 [例2] 已知X = 0 0110 , Y = 0 1101 , 用反码计算Z = X-Y。 解: [X]反 = 00110,[-Y]反 = 10010,则[Z]反 =[X]反+[-Y]反 = 00110 + 10010 接下来就是 = 11000 , 其真值为Z = 10111

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注