我在C语言中找到了一个源代码.我从这里开始:链接:
#include<stdio.h>
int main()
{
int a,b,hasil;
printf("Masukan integer pertama: ");
scanf("%d",&a);
printf("Masukan integer kedua: ");
scanf("%d",&b);
hasil = a - ~b -1;
printf("Hasil tambah kedua-dua integer :%d",hasil);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
似乎,代码不使用"+"或"- -"操作添加这样两个整数.任何人都能告诉我,这项技术或概念是用什么的?
这种"技术"是一种脑筋急转弯.就实际应用而言,它几乎没有用得:它所做的就是b在不使用一元减号的情况下以二进制补码计算负数:
-b == (~b + 1)
a+b == a - (-b) == a - (~b + 1) == a - ~b - 1;
Run Code Online (Sandbox Code Playgroud)