⼆进制反码运算
最近在看计算机⽹络的相关知识,看到了运输层相关的知识,看到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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。