user13990: In the Litecoin source it is written:
static CBigNum bnProofOfWorkLimit(~uint256(0) >> 20); // Litecoin: starting difficulty is 1 / 2^12

How does that compute? ~uint256(0) >> 20 is 0x00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff. Hashes have an equal probability of being any given number, so the chance of getting a valid Litecoin hash (i.e. one that is smaller than this number) is 0x00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 1 / 2^20, not 1 / 2^12. Is this a typo in the Litecoin source code or am I misunderstanding something?

user12034: To use the terminology on Litecoin's wiki, ~uint256(0) >> 20 is the target, and 1 / 2^12 is (approximately) the difficulty. You can see that by running the following in Python (or anything that can handle calculations on large numbers).
target = 0x00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff # or 2**236-1
diff = 0xFFFF * 2**208 / target
print(diff) # 0.00024413689970970154
print(1/2**12) # 0.000244140625

I believe the 1 / 2^20 figure you calculated is the probability that each hash will succeed, which is not the same as (although related to) the difficulty.

13990: <p>In the Litecoin source it is written:</p>

<pre><code>static CBigNum bnProofOfWorkLimit(~uint256(0) &gt;&gt; 20); // Litecoin: starting difficulty is 1 / 2^12
</code></pre>

<p>How does that compute? <code>~uint256(0) &gt;&gt; 20</code> is <code>0x00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff</code>. Hashes have an equal probability of being any given number, so the chance of getting a valid Litecoin hash (i.e. one that is smaller than this number) is <code>0x00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff</code> = <code>1 / 2^20</code>, <strong>not</strong> <code>1 / 2^12</code>. Is this a typo in the Litecoin source code or am I misunderstanding something?</p>
 12034: <p>To use the terminology on <a href="https://litecoin.info/Difficulty" rel="nofollow">Litecoin's wiki</a>, <code>~uint256(0) &gt;&gt; 20</code> is the target, and <code>1 / 2^12</code> is (approximately) the difficulty. You can see that by running the following in Python (or anything that can handle calculations on large numbers).</p>

<pre><code>target = 0x00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff # or 2**236-1
diff = 0xFFFF * 2**208 / target
print(diff) # 0.00024413689970970154
print(1/2**12) # 0.000244140625
</code></pre>

<p>I believe the <code>1 / 2^20</code> figure you calculated is the probability that each hash will succeed, which is not the same as (although related to) the difficulty.</p>
