好,今天小编关注到一个比较有意思的话题,就是关于c语言0取反的问题,于是小编就整理了2个相关介绍c语言0取反的解答,让我们一起看看吧。
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。。。c语言编程,这里的-0U和1U什么什么意思?
这里书上打印错了, 应该是~0U, 意思就是无符号整型0, 然后~表示按位取反,最后的结果就是全是1,这个函数的作用是求出本台计算机中,unsigned型的数据是32位的还是别的。
到此,以上就是小编对于c语言0取反的问题就介绍到这了,希望介绍关于c语言0取反的2点解答对大家有用。
(图片来源网络,侵删)
版权声明:本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。