I have been reading a lot about the SRT division algorithm lately and I understand that the main idea is that it allows us to skip over addition/subtraction, unlike non-restoring division where we have to perform an ALU operation in every iteration.
However, I was quite confused by why we need to correct the BSD quotient in the last step (the step where we are subtracting the ULP) like, for example, in the image below. And is there any scenario where we may not have to make such correction?