Is the bits field a unique representation of the target? The bits field is the compact representation of the target.

Example:

bits: 1d00ffff
target: 00ffff0000000000000000000000000000000000000000000000000000

bits: 1cfff00
target: ffff0000000000000000000000000000000000000000000000000000


But these two actually represent the same number.

int(target) -&gt;  26959535291011309493156476344723991336010898738574164086137773096960
 for both of the above targets.

What (if anything) makes bits a unique representation of the target?



Clarification:

In regular interactions with numbers, this kind of thing doesn't really matter, as a few leading zeros don't affect how we interpret the number. However, in Bitcoin, the bits field is used as part of the hash of the block. Therefore, a different bits representation would produce a different hash of the block.
In short: no, the nBits encoding is not unique (there may be multiple 32-bit values that correspond to the same 256-bit target), but the nBits value as required by the network consensus rules is unique.

The reason for that is that all calculations happen on the target, which is then converted (using a deterministic algorithm) into nBits format. That nBits value is then required to match the value in the block header.