“For example, if six bits are used to represent the number “00 1010”
(decimal positive 10) and the sign extend operation increases the word
length to 16 bits, then the new representation is simply “0000 0000
0000 1010”. Thus, both the value and the fact that the value was
positive are maintained. If ten bits are used to represent the value
“11 1111 0001” (decimal negative 15) using two’s complement, and this
is sign extended to 16 bits, the new representation is “1111 1111 1111
0001”. Thus, by padding the left side with ones, the negative sign and
the value of the original number are maintained. ”
引用块内容
——维基百科
简单的说,符号扩展就是低位数转高位数。而我们只需要在低位数的左边补上低位数的符号位,直到数字位数达到要求,如:
“00 1010” (6位正10) 转 “0000 0000 0000 1010”(16位正10)
“11 1111 0001” (10位负15)转”1111 1111 1111 0001”(16位负15)
下面给出数学证明:
令I为k位正二进制数,m > k, ai 为 0或1.
1.
I=∑k0ai2i
=0+∑k0ai2i
=