关于取反~的运算

今天看到一个东西

SELECT ~32767

-----------
-32768

按位反的话为什么结果为什么不是-520而是-521呢?

然后我又看了看,才想起在二进制的世界里,第一个数位是表示正负数,所以在smallint 的2字节里面,是这样纸的

32767

0111 1111 1111 1111

所以当取反的时候就是

-32768

10 0000 0000 0000

有时候就是转不过弯,不确定的时候还是要动手看下才能巩固自己的只是

原文地址:https://www.cnblogs.com/Gin-23333/p/5110843.html