So, how do you add two numbers, without adding them?
You XOR, Bit shift, and AND them into submission!
Code: (Select All)
Print Add(200, 22, Overflow~%%);: If Overflow~%% Then Print "Overflow!" Else Print
Print Add(245, 22, Overflow~%%);: If Overflow~%% Then Print "Overflow!" Else Print
Function Add (A As _Unsigned _Byte, B As _Unsigned _Byte, Overflow As _Unsigned _Byte)
Dim As _Unsigned _Byte CarryFlag
Overflow = 0
While B <> 0
CarryFlag = A And B
Overflow = Overflow Or _SHR(CarryFlag, 7)
A = A Xor B
B = _SHL(CarryFlag, 1)
Wend
Add = A
End Function
You XOR, Bit shift, and AND them into submission!