C语言,按位取反的时候怎么运算的!为什么~1的运算结果是?2
C语言,按位取反的时候怎么运算的!为什么~1的运算结果是?2
日期:2012-03-18 14:02:20 人气:1
1的二进制表示是0000 0000 0000 0001,用~取反就是1111 1111 1111 1110 这个是补码,因为在位运算符中出现的数都是以二进制补码形式出现,你可以去翻书看看。补码=反码+1.
所以将这个数减去1,再取反转换成原码(取反除符号位):即是1000 0000 0000 0010
所以~1的结果等于 -2