1
The bitcoin wiki describes difficulty target representation as follows:
How is difficulty stored in blocks? Each block stores a packed representation (called "Bits") for its actual hexadecimal target. The target can be derived from it via a predefined formula. For example, if the packed target in the block is 0x1b0404cb, the hexadecimal target is
0x0404cb * 2**(8*(0x1b - 3)) = 0x00000000000404CB000000000000000000000000000000000000000000000000
Note that the 0x0404cb value is a signed value in this format. The largest legal value for this field is 0x7fffff. To make a larger value you must shift it down one full byte. Also 0x008000 is the smallest positive valid value.
Why 0x008000 is the smallest positive valid value?
Yes
0x00800000is equal to0x00000000, but I think the wiki is referring to the part after the Bits removed the first byte, and it says0x008000instead of0x800000is the smallest positive valid value. – hello.wjx – 2016-09-22T12:03:25.7870x008000 is also equal to zero, because it is right shifted three times. For that matter, 0x01008000 would equal zero too. – Nick ODell – 2016-09-22T17:57:57.517
Then 0x007000, 0x006000 ... all equal to zero, and all are smaller than 0x008000 – hello.wjx – 2016-09-23T15:08:57.550