https://www.zhihu.com/question/20159860/answer/71256667
反码不改变符号位,按位取反改变每一位。
计算机用补码存储,-1取反刚好为0,while(~scanf())为例