我是来给大家泼点冷水的. 这样的问题其实没有多大研究的必要. 如果你对计算机底层的运算感兴趣, 那么你该看看计算机结构方面的书, 还有就是数字电路的书籍.
关于乘法的实现, 计算机不是通过移位实现的, 而是由乘法器实现的. 我们知道, 计算机使用的是2进制, 也就是说只有 0 和 1, 但是做法和10进制的乘法是相同的, 举个简单的例子来讲, 对于10进制 13 * 12 我们先用 13 * 2 得 26
13 * 1 得 13 当然, 13 中的 3 是 和 26 中的 2 对齐的, 然后再作加法, 就得到 156 了.
对于二进制, 做法是一样的. 为此有专门的实现电路, 当然在乘法电路中要用到加法器,确切的讲是全加器.
至于负数, 是通过的补码 + 1的办法得到的.