2 qq 31350749 qq_31350749 于 2016.02.03 23:17 提问

关于二进制反码求和运算的问题

百科说,0和0相加是0但要产生一个进位1,0和1相加是1,1和1相加是0.若最高位相加后产生进位,则最后得到的结果要加1。听着挺简单,但实际根本不懂,能帮我举个具体的运算例子吗?谢谢

2个回答

caozhy
caozhy   Ds   Rxr 2016.02.03 23:42
已采纳

举例,101 110反码求和,那么就是
010+001=011

caozhy
caozhy 010+010=100,或者说2+2=4
2 年多之前 回复
qq_31350749
qq_31350749 可以给出一个有进位的例子吗?谢谢
2 年多之前 回复
qq_31350749
qq_31350749 010
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.02.03 23:41

二进制相加和十进制一样的原理。
0+0=0没有进位
0+1=1没有进位
1+0=1没有进位
1+1=0有进位

进一步,如果是反码求和,就是先取反(0变1,1变0),再求和
0 0取反是1+1=0有进位
0 1取反是1+0=1没有进位
1 0取反是0+1=1没有进位
1 1取反是0+0=0没有进位

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
二进制反码求和校验码算法
原文链接:http://blog.chinaunix.net/uid-26758209-id-3146230.html 校验和算法 经常看计算机网络相关的书时,每次看到关于IP或者是UDP报头校验和时,都是一笑而过,以为相当简单的东西,不就是16bit数据的相加吗!最近在学习Ping命令的源待时,看到里面有关于校验和的算法。一头雾水,后来查找资料,看到校验和是16bit字的二进制反码和。总是觉
二进制反码求和校验算法
原文链接:http://blog.chinaunix.net/uid-26758209-id-3146230.html 二进制反码求和校验算法     经常看计算机网络相关的书时,每次看到关于IP或者是UDP报头校验和时,都是一笑而过,以为相当简单的东西,不就是16bit数据的相加吗!最近在学习Ping命令的源待时,看到里面有关于校验和的算法。一头雾水,后来查找资料,看到校验和是16bit字的
tcp二进制反码求和
校验和算法     经常看计算机网络相关的书时,每次看到关于IP或者是UDP报头校验和时,都是一笑而过,以为相当简单的东西,不就是16bit数据的相加吗!最近在学习Ping命令的源待时,看到里面有关于校验和的算法。一头雾水,后来查找资料,看到校验和是16bit字的二进制反码和。总是觉得很奇怪,为什么会用反码和,而不是直接求和呢?或者是补码和呢?因为在计算机里面数据是以补码的形式存在啊!经过看书查
IP:网际协议中的二进制反码求和算法。。
链接:http://www.jb51.net/article/30028.htm 以4bit(计算方便一点,和16bit是一样的)做检验和来验证。 建设原始数据为 1100 , 1010 , 0000(校验位) 那么把他们按照4bit一组进行按位取反相加。 1100取反0011 , 1010取反是0101,0011加上0101 是1000,填入到校验位后 1100 , 1010 , 1000 那么
二进制反码求和
在看TCP/IP 时,看到IP 协议中有个 首部检验和 是用的 二进制反码求和。 不太理解,上网搜到了一个答案,记载下面。 以4bit(计算方便一点,和16bit是一样的)做检验和来验证。  假设原始数据为 1100 , 1010 , 0000(校验位)  那么把他们按照4bit一组进行按位取反相加。 1100 取反0011 , 1010 取反是0101,校验位的计算
计算机网络二进制反码求和校验算法
原文链接:http://blog.chinaunix.net/uid-26758209-id-3146230.html 校验和算法     经常看计算机网络相关的书时,每次看到关于IP或者是UDP报头校验和时,都是一笑而过,以为相当简单的东西,不就是16bit数据的相加吗!最近在学习Ping命令的源待时,看到里面有关于校验和的算法。一头雾水,后来查找资料,看到校验和是16bit字的
二进制反码运算
最近在看计算机网络的相关知识,看到了运输层相关的知识,看到UDP检验和然而却看不懂什么意思!所以只好百度一下二进制 反码运算究竟是如何运算。 首先在计算机中所有的数据都是以二进制的形式存储的,正数和负数的区别仅仅是符号位的区别,正数的符号位是0,而负数的符 号位是1,然后正数的反码和补码都和原来一样,而负数的反码是符号位不变,其他按位取反,补码是在反码的基础上加1. 例如:18的二进制数是
二进制转换成十六进制进行反码加法运算
在网上搜到的一个方法,对于IP与TCP的检验和运算,时常会遇到十多个十六位二进制数的反码运算,可以把它转换成十六进制进行相加,这样会大幅度的减少运算量。 打比方现在有三个十六位的二进制数: 二进制数 11101001 01101010 0101111101000011 1011001111110100 然后把每一个数转换成十六进制的数:
二进制反码的计算
0和0相加是0,0和1相加是1,1和1相加是0但要产生一个进位1,加到下一列。如果最高位相加后产生进位,则最后得到的结果要加1。1.反码运算时,其符号位与数值一起参加运算。2.反码的符号位相加后,如果有进位出现,则要把它送回到最低位去相加(循环进位)。3.用反码运算,其运算结果亦为反码。在转换为真值时,若符号位为0,数位不变;若符号位为1,应将结果求反才是其真值。(这里求反不包括符号位)[例1] ...
网络传输协议之二进制反码校验和剖析
网络传输协议之二进制反码校验和剖析 什么是二进制反码求和? 对一个无符号数,先求其反码(按位取反之意,与有符号数中定义的反码表示是不相同的),然后从低位到高位,按位相加,等于2则进1,若最高位有进位,需要向最低位加1。 在这个定义中,与补码加法有些区别的是,若最高位有进位,需要向最低位进位。理解起来有些抽象,以4bit为例加以说明。 假设0010是补码表示,则其反码是各2进制位按位取反1101,同理补码1010的反码表示为01