无心人 发表于 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 )
能不能化简?
能不能表示所有情况

mathe 发表于 2008-3-31 16:31:34

maxABmaxAmaxBResult00011000001010100101110101111110

无心人 发表于 2008-3-31 16:40:51

能用比我原始逻辑式更简单的逻辑表示么

mathe 发表于 2008-3-31 16:57:37

原始逻辑表达式是什么?你前面几个好像都是错误的

无心人 发表于 2008-3-31 17:06:39

(not maxAB) or(maxA and (not maxB)and maxAB )

mathe 发表于 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

:'(

没办法了么?
页: 1 [2] 3
查看完整版本: 问大家一个比较大小的问题