Multiplication of fixed-point numbers
There are errors in the presented answer. Here's the same but corrected and rewritten a bit:

 1.01 * 1.11
--------------
 carry: 1 1
        1.1111  (shift right 1.11 with sign extension)
        0.000
      + 0.01    (2's complement of 1.11)
--------------
      = 0.0011


Here, 2's complement means negation, which is done by flipping each bit and adding one least significant bit valued 1. In multiplication of signed binary numbers, if the first multiplicand (the one that is not shifted) is negative, the correct result is obtained by doing subtraction in place of the last addition by the second multiplicand, and that's the + 0.01 line. It's a binary trick that is equivalent to actually dragging along all the sign extensions, which leads to large values in the carry and more steps than necessary:

 1.01 * 1.11
--------------
 carry: 2 1
        1.1111  (shift right 1.11 with sign extension)
        0.000
        1.11
        1.1     (sign extension of the multiplicand 1.01 is ...111.01)
      + 1.
--------------
      = 0.0011


There is no need to have two binary decimals before . in the result.

The subtraction trick can be tested with different values and it passes all the tests:

              carry:             1               1
second multiplicand: 000 001 010 011 100 101 110 111 
                     00  01  10  11  00  01  10  11
                   + 0   1   0   1   0   1   0   1
----------------------------------------------------
                   = 000 111 110 101 100 011 010 001
     2's complement: 000 111 110 101 100 011 010 001