Look at the code below from android bitcoin wallet:
proofOfWorkLimit = Utils.decodeCompactBits(0x1d00ffffL);
And look at the code from bitcoin qt wallet:
static CBigNum bnProofOfWorkLimit(~uint256(0) >> 32);
I assume that in second case ProofOfWorkLimit consists of 32 "0" and 224 "1" (000000...000000000011111111111111111111....11111111)?
So I don't have an idea how to get first case "0x1d00ffffL" from second case? In binary "0x1d00ffffL" is 11101000000001111111111111111.
P.S. I have looked in uint256.h. It wasn't helpful.
P.S.S. Can anyone answer for sample what exactly should I put here "Utils.decodeCompactBits(0x1d00ffffL);" in case "~uint256(0) >> 27" ?