首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于取反的符号“~”“!”的疑义

2012-09-07 
关于取反的符号“~”“!”的疑问我记得C里面有个取反的符号,按位取反“~”,还有个是非“!”,这两个什么区别?[解决

关于取反的符号“~”“!”的疑问
我记得C里面有个取反的符号,按位取反“~”,还有个是非“!”,这两个什么区别?

[解决办法]
!用于把真变假,假变真,在C中,只要不是0就是真
所以
!5值是0
~按位取反
5二进制00000101,取反11111010,代表-6
所以~5值-6


[解决办法]
~是按位取反,例如整数3,二进制形式是
00000000000000000000000000000011,按位取反后就是
11111111111111111111111111111100

!是逻辑否,一个非0数取否之后就是0,上面的3,用!之后就是0

也就是说,所有的不是0的数用!操作后都是0,只有当操作数等于0xFFFFFFFF的,用!和~的结果值才是一样的

[解决办法]
取反是按位取反1变0,0变1.和!他两之间八竿子都打不到的关系啊!
[解决办法]
~是按位取反,二进制0变1,1变0. !是逻辑取反, false变true,true变false
[解决办法]

引用楼主 ddoeddoe 的帖子:
我记得C里面有个取反的符号,按位取反“~”,还有个是非“!”,这两个什么区别?

[解决办法]
探讨
~是按位取反,二进制0变1,1变0. !是逻辑取反, false变true,true变false

[解决办法]
!是逻辑取反。
~是按位取反。
[解决办法]
!实质上只在“真”和“假”之间反转。
而~是操作数值的每一个二进制位。
[解决办法]
按位去反是 按照原来保存在内存中的2进制取反,! 是非的意思 逻辑运算符

热点排行