怎么样让两个不大于40的正整数经过and or xor之后得出一个不大于5的正整数.(100分)

  • 主题发起人 主题发起人 易名烦
  • 开始时间 开始时间

易名烦

Unregistered / Unconfirmed
GUEST, unregistred user!
and or xor 可以随意组合。
 
对5求余数,不就可以了吗?
 
你说的是两个相加求余吗,这个我当然想到了,但我较菜,对数字的
and or xor 运算不是太熟,想大家指点一下。

象:
两个整数 and 相当于数学运算的什么?
两个整数 or 相当于数学运算的什么?
两个整数 xor 相当于数学运算的什么?

 
and:按为求与:8 and 9 ===== 1000 and 1001 = 1000 = 8
or: 按位求或:8 or 9 ===== 1000 or 1001 = 1001 = 9
xor: 按位求异或:8 xor 9 ===== 1000 xor 1001 = 0001 = 1
 
上面说的很清楚了,1000 ,1001 都是二进制。
 
你要变到5以下,目的是什么?是否只能用这2个数字加这3种运算符?
 
对二进制而言
and:0and0=0,0and1=0,1and1=1,1and0=0
or: 0or0=0,0or1=1,1or1=1,1or0=1
xor: 0xor0=0,0xor1=1,1xor1=0,1xor0=1
 
二进制一位一位的来我还是懂的。
但是就十进制来讲我不知道其中规率,如果有,请指明哈。

就变到5以下这个问题,我是想比mod更随机一点。
 
不会是搞六和彩吧?呵呵
 
不是不是,我还是摸六合彩呢。老兄你说笑了。[:D]
 
请高人明示一下。
 
晕了
还是不明白楼主的意思…………
2进制知道的话,10进制不就是转换到2进制 算好 再转回来嘛……

还有变到5以下,你又不说规则,那我:(A+B) and 0 or 4 == 4 行不,呵呵。
 
规则就是尽量取得分散的值。
如:
40 20 = 1
40 21 = 4
21 40 = 3
反正就是尽理分散的值。尽量让人看不出规率所在。
 
如果真想比较离散的值,还少不了移位的操作,还有取反的操作
但如何让其小于5,却是太不容易了
 
真因为难,所以请教各位高手啊。
 
咔咔,我想我大概明白楼主意思了,是不是想做校验位?
 
感觉不可能,如果让它小于8还比较容易点
 
哦,请各位发表高见。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部