在做算法题时经常用到这两种取反操作,下面对两种取反进行介绍和区别
~
主要用于按位取反,字面意义就是把这个数字的二进制每一位都取反,例如将(10001)按位取反有~(10001)=(01110)=(1110)
!
主要用于逻辑取反,在取反前会将数字强转为bool类型,比如!3=false
,应为3
会被按照非0即为真的原则被强转为true
在做算法题时经常用到这两种取反操作,下面对两种取反进行介绍和区别
主要用于按位取反,字面意义就是把这个数字的二进制每一位都取反,例如将(10001)按位取反有~(10001)=(01110)=(1110)
主要用于逻辑取反,在取反前会将数字强转为bool类型,比如!3=false
,应为3
会被按照非0即为真的原则被强转为true