restoring algorithms are similar to doing long hand division by hand.
I did a web search and found that Wiki's "non-restoring" algorithm is not what was/is used in the few mini-computers that implemented it. The Wiki algorithm shows a quotient made of up -1, +1, while there's an alternaltive algorithm that produces conventional 0's and 1 for the quotient. Link to a more typcial algorithm:
http://fourier.eng.hmc.edu/e85/lectures/arithmetic_html/node8.html
For signed numbers, there is some pre and post processing (decrement of negative dividend, increment remainder, ...)
As for why it works, you should go thorugh the math (not sure if this is homework).