Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def undoShiftRightAndXor(value, shift):
- i = 0
- result = 0
- while ((i * shift) < 32):
- # Create Mask
- mask = (-1 << numpy.right_shift((32 - shift), (shift * i)))
- part = value & mask
- # Undo the xor
- value = value ^ numpy.right_shift(part, shift)
- # Add part to result
- result = result | part
- i += 1
- return result
- def undoShiftLeftAndXor(value, shift, mask):
- i = 0
- result = 0
- while ((i * shift) < 32):
- # Create mask
- partialMask = (numpy.right_shift(-1, (32 - shift))) << (shift * i)
- part = value & partialMask
- # Undo the xor
- value = value ^ ((part << shift) & mask)
- # Add part to result
- result = result | part
- i += 1
- return result
- def originalValue(output):
- original = output
- original = undoShiftRightAndXor(original, 18)
- original = undoShiftLeftAndXor(original, 15, 0xefc60000)
- original = undoShiftLeftAndXor(original, 7, 0x9d2c5680)
- original = undoShiftRightAndXor(original, 11)
- return original
- def getState(allNumber):
- state = []
- for n in allNumber:
- state.append(originalValue(n))
- return state
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement