The Wikipedia article on Two's Complement Integers makes my head spin, but the one on
Sign Extension is a little simpler.
The highest bit in a 16-bit Signed Integer is the Sign bit. Bits 00-15 are the value.
If the Sign bit is true, the value is Negative. If the Sign bit is false, the value is Positive.
The same is true for 32-bit DINTs, but the Sign bit is Bit 31, while bits 00-30 are the value.
When you use MOV to move a INT value to a DINT and it's a positive value, all the bits move, one-to-one.
When you use MOV to move a INT value to a DINT and it's a negative value, the lower 15 bits move one-to-one but the Sign bit is moved from Bit 15 to Bit 31.
By contrast, the COP instruction in Allen-Bradley controllers copies all the bits exactly, without regard for the datatype and not taking the Sign bit into consideration.