你的思路是正确的,只是你的表述有误,在第二行中间“反码”应改为“补码”.
下面给你捋一遍整个过程.
首先将给出的数根据给定位数用原码表示(无论正数负数).即-513的原码为1010 0000 0001(12位).
其次,求出上述原码相对应的补码,符号位不变,其它位变反后加一.即-513的补码为1101 1111 1111(12位).
然后,对求出的补码进行符号扩展(取符号位填充到数的前方使其凑足位数,其它位保持不变直接写到低位).注意与原码的符号扩展不一样.即1111 1101 1111 1111(16位).
最后,对补码进行算术右移.负数补码的算术右移是添1.注意与逻辑右移、负数原码、正数算术右移区别.结果是1111 1110 1111 1111(16位).
你的结果是正确的,只是其中涉及一些概念必须弄清楚,否则容易混!