C语言的位运算中,~0为什么等于-1呢?怎么不是1呢?

日期:2018-04-14 19:56:57 人气:1

C语言的位运算中,~0为什么等于-1呢?怎么不是1呢?

按位取反,0就是 32个0bit(针对int类型), 取反后是32个1bit即16进制的0xffff_ffff ,而-1==0xffff_ffff,所以0取反就是-1。。。怎么算出来很简单, 计算机中数据是补码形式存储, -1对应的补码是1取反+1, 1取反==0xffff_fffe, 那么再+1就是 0xffff_ffff。。。
    A+
热门评论