受佬启发:【CSAPP-深入理解计算机系统】2-2.整数的表示(下)_哔哩哔哩_bilibili
假设有补码a=1011,将这个数据扩展成8位,则为b=11111011。证明为什么这两个数相等。
为了证明a==b,符号扩展,数据不变。我们只需要证明扩展一位的数据等于扩展之前的数据即可。为什么?
假设a一共有w位。
因为:
扩展之前的等于扩展一位后的。
相对 是扩展一位之前的数据。
……
所以
因此我们只需要证明扩展一位的数据等于扩展之前的数据即可。
证明过程:
注意 补码的真值 此处的w为数据位数。比如1011,有4位。w=4。
所以证明:
图来自:B站九曲阑干
因此符号扩展,数据不变。
如果不理解补码,可以看我的这篇博文: