declare @xxx int
set @xxx=~5
select @xxx
为什么返回的是-6,能否详细的说说?
谢谢!补数

解决方案 »

  1.   

    5的二进制是   00000000000000000000000000000101
    取反后二进制是11111111111111111111111111111010
    转为十进制为-6
      

  2.   

    正数的补码不是其本身吗?
      

  3.   

    ~只是按位取反,并不是取补码
      

  4.   

    难道是教材上有误,还是我理解错误了?
    教材上指出,一元运算符 ~ 返回数字的补数
    这里的补数指的就是按位取反吗??
      

  5.   

    ~只是按位取反运算符,并不是什么补码