搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 一个简单的编程证明题,有兴趣可以看看~
标题:
一个简单的编程证明题,有兴趣可以看看~
只看楼主
九转星河
来 自:长长久久
等 级:
贵宾
威 望:
52
帖 子:5023
专家分:14003
注 册:2016-10-22
结帖率:
99.25%
楼主
已结贴
√
问题点数:20 回复次数:6
一个简单的编程证明题,有兴趣可以看看~
在8位的unsigned char中,已知a+b=255,怎么证明a&b=0 ?
这个看上去很简单,但感觉挺好玩的,有兴趣可以证明一下
~
[此贴子已经被作者于2018-6-27 10:02编辑过]
搜索更多相关主题的帖子:
编程
兴趣
unsigned
char
2018-06-27 09:57
wmf2014
等 级:
贵宾
威 望:
216
帖 子:2039
专家分:11273
注 册:2014-12-6
第
2
楼
得分:8
计算结果为全1,说明a和b相同位必然数值相异,因为数值相同相加结果为0,不符合计算结果全1的要求,既然各位相异,则相与的结果必为0,所以a&b=0。
能编个毛线衣吗?
2018-06-27 10:28
九转星河
来 自:长长久久
等 级:
贵宾
威 望:
52
帖 子:5023
专家分:14003
注 册:2016-10-22
第
3
楼
得分:0
以下是引用
wmf2014
在2018-6-27 10:28:53的发言:
计算结果为全1,说明a和b相同位必然数值相异,因为数值相同相加结果为0,不符合计算结果全1的要求,既然各位相异,则相与的结果必为0,所以a&b=0。
这是其中一种简单的证明方法,但说法有点不完善,1+1+进位是可以等于1的,其实稍微说多一个关键点这说法就成立了
~
[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-06-27 11:07
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
4
楼
得分:12
我来个不直观,但完全由公式推导的方法
因为 a+b==255
所以 a == 255-b = -1-b + 256 = -1-b (因为负号就是取反加一,所以) == -1+(~b+1) == ~b
既然 a == ~b
那么 a&b == a&~a == 0
2018-06-27 11:23
九转星河
来 自:长长久久
等 级:
贵宾
威 望:
52
帖 子:5023
专家分:14003
注 册:2016-10-22
第
5
楼
得分:0
以下是引用
rjsp
在2018-6-27 11:23:41的发言:
我来个不直观,但完全由公式推导的方法
因为 a+b==255
所以 a == 255-b = -1-b + 256 = -1-b (因为负号就是取反加一,所以) == -1+(~b+1) == ~b
既然 a == ~b
那么 a&b == a&~a == 0
正解
简单说就是看成有符号位就不难得出a == ~b的关系
过了
~
[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-06-27 11:30
wmf2014
等 级:
贵宾
威 望:
216
帖 子:2039
专家分:11273
注 册:2014-12-6
第
6
楼
得分:0
回复 3楼 九转星河
既然已有大神用公式推算出来,但我还是要说一下:楼主说“1+1+进位是可以等于1的”,很显然总有一个提供进位的那位结果为0的,我说不符合全1的说法没什么问题。
能编个毛线衣吗?
2018-06-27 11:40
九转星河
来 自:长长久久
等 级:
贵宾
威 望:
52
帖 子:5023
专家分:14003
注 册:2016-10-22
第
7
楼
得分:0
回复 6楼 wmf2014
其实这题原型是是操作系统课老师讲的一个关于磁盘调度算法问题
以下是引用
wmf2014
在2018-6-27 10:28:53的发言:
计算结果为全1,说明a和b相同位必然数值相异,因为数值相同相加结果为0,不符合计算结果全1的要求,既然各位相异,则相与的结果必为0,所以a&b=0。
再补充一下直观的
其实最低位没有进位,但最低位的目标数是1,因此两个位只能是互异的关系~
既然最低位没有进位,那么第二个位也没可能有进位,因此第二个位也只能是互异关系~
这样从前一个位为互异关系推导出后一位为互异关系,用数学归纳法可得
a^b=255
这里可以得出a&b=0
其实4楼已经给出严格的公式证明了,虽然说不直观,但却说得非常清楚了
~
[此贴子已经被作者于2018-6-27 11:49编辑过]
[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-06-27 11:43
7
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-488198-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.738789 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved