找回密码
 欢迎注册
楼主: 无心人

[讨论] 问大家一个比较大小的问题

[复制链接]
 楼主| 发表于 2008-3-31 15:42:51 | 显示全部楼层
那能否通过位操作和减法测试A, B大小顺序?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-3-31 15:52:03 | 显示全部楼层
现在问题改变
A, B为无符号64位整数
maxBit为求最高位bit函数
maxAB = maxBit(A - B)
maxA = maxBit(A)
maxB =  maxBit(B)

MaxA = 0, MaxB = 0或者MaxA = 1, MaxB = 1
MaxAB = 1都表示A < B
仅MaxA = 1, MaxB = 0, MaxAB = 1表A > B
是不是?
如何最精简求出上面的逻辑结果
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-3-31 16:01:35 | 显示全部楼层
maxAB = 0肯定是A >= B
maxAB = 1
   maxA  = 0, maxB = 0表示 A < B
   maxA = 1, maxB = 0表示 A > B
   maxA = 1, maxB = 1表示 A < B
  maxA  = 0, maxB = 1表示 A < B
这个逻辑如何写?
输入A, B, A - B的最高位Bit
输出1代表 A >= B否则A < B
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-3-31 16:08:37 | 显示全部楼层
mathe:
得到一个逻辑式
(not maxAB) or  (maxA and (not maxB)  and maxAB )
能不能化简?
能不能表示所有情况
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-3-31 16:31:34 | 显示全部楼层
maxABmaxAmaxBResult
0001
1000
0010
1010
0101
1101
0111
1110
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-3-31 16:40:51 | 显示全部楼层
能用比我原始逻辑式更简单的逻辑表示么
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-3-31 16:57:37 | 显示全部楼层
原始逻辑表达式是什么?你前面几个好像都是错误的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-3-31 17:06:39 | 显示全部楼层
(not maxAB) or  (maxA and (not maxB)  and maxAB )
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-3-31 17:09:33 | 显示全部楼层
maxAB = 0肯定是A >= B
=====================>
这句话是错误的
比如
A=0, B=0x80...0+1,(也就是B的最高和最低比特为1,其余为0)
A-B=-B=0x7FFFF....F
maxAB=0,但是A<B
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-3-31 17:18:47 | 显示全部楼层


没办法了么?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-3-29 07:45 , Processed in 0.047316 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表