无符号二进制算术。减法和平方

unsigned binary arithmetic. Subtraction and square it

我们有两个变量:

unsigned int a=5; unsigned int b=3;

我们知道,

a-b==~(b-a)+1

但是如何证明

(a-b)*(a-b)==(b-a)*(b-a)

而不是 a-b==~(b-a)+1 我会使用 ℤ/2kℤ 是 ring。环中的 (a-b)*(a-b)==(b-a)*(b-a) 是已知的,但您可以从 (a + -b)*(a + -b)=(b + -a)*(b + -a) 开始并从那里开始:

使用分配率计算第一个产品:(a*a)+(a*-b)+(-b*a)+(-b*-b)

算出第二个产品:(b*b)+(b*-a)+(-a*b)+(-a*-a)

众所周知,在环 -x*y = x*-y = -(x*y)--x = x 中,使用它来简化一点:

L: (a*a)+-(a*b)+-(b*a)+(b*b)
答:(b*b)+-(b*a)+-(a*b)+(a*a)

然后稍微重新排列一下。