http://blog.csdn.net/pipisorry/article/details/36517411

按位取反“~”:按位取反1变0,0变1

逻辑非“!”:逻辑取反, false变true,true变false,在C中,只要不是0就是真

------------------------------------------------------------------------------------------------------------------------------

所以
!5值是0
~按位取反
5二进制00000101,取反11111010,代表-6
所以~5值-6

~是按位取反,例如整数3,二进制形式是
00000000000000000000000000000011,按位取反后就是
11111111111111111111111111111100

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

所有的不是0的数用!操作后都是0

只有当操作数等于0xFFFFFFFF的,用!和~的结果值才是一样的

所有正整数的按位取反是其本身+1的负数

所有负整数的按位取反是其本身+1的绝对值

零的按位取反是 -1

ref:

http://blog.csdn.net/pipisorry/article/details/36517411

http://blog.csdn.net/xiexievv/article/details/8124108

取反!和按位取反~的区别相关推荐

  1. 单片机逻辑取反和按位取反差异

    单片机C语言开发逻辑取反和按位取反差异 新手入门容易犯的小错误. 在不同条件语句中,注意使用场合. 示例程序 /*------------------------------------------- ...

  2. Verilog逻辑取反与按位取反

    Verilog中逻辑取反(取非)用 !,按位取反用~. 取非 ! 表示运算结果只有0(假)与1(真)两种情况: 取反~表示二进制数按位取反. 例如对in=1101分别进行逻辑取反与按位取反: assi ...

  3. !和~的区别(逻辑取反和按位取反)

    在c语言中,!和~均表示取反,这两个的区别在于: ! :代表逻辑取反,即:把非0的数值变为0,0变为1; ~ :表示按位取反,即在数值的二进制表示方式上,将0变为1,将1变为0: 上述其实可以从jav ...

  4. java实现js取反_特定位取反(js实现)

    去华为面试的时候,没有做好准备工作:面试的流程没有问清也没有查,结果一过去就让上机做题,着实有点措手不及.笔者是擅长前端的Java Web工程师啊,基本的底层编程知识早已生疏了.机试题碰到了这道位运算 ...

  5. c# 整数取反_按位取反运算符的使用

    按位取反运算符的使用 按位取反运算符是按照二进制的每一位取反,比如byte类型,~0的结果就是255. 该功能可以在mask中做一些反转操作 如下代码,a存放了2,4,8三个值.用按位取反'~'运算符 ...

  6. 数字的原码,补码,反码,~和‘-’的区别。取反与负号的区别。

    一.原码,反码,补码的基础概念和计算方法. 原码,反码,补码只是计算机存储数字的一种方式. 1,原码 原码就是用第一位表示符号位,其余位表示值,比如8位的二进制数 [+1]原 = 0000 0001 ...

  7. 什么叫取反_取反位什么意思_c语言按位取反什么意思

    PHP中使用按位取反(~)函数创建后门 - 微信公 580x300 - 60KB - PNG PHP中使用按位取反(~)函数创建后门 - 微信公 310x145 - 26KB - JPEG [东方新闻 ...

  8. java 取反 值_java编程 按位取反的问题 java中取反操作是正数

    这个问题涉及到计算机内部的编码. 对于整数,计算机内部用最高位表示符号位,0表示为正,1表示为负. 对于负数,为了便于计算,计算机用补码来表示其值. 已经一个数的补码,要知道其值分两种情况: 1:符号 ...

  9. 复习一个知识点——原、反、补码以及取反操作

    一.相关概念 1.1  机器数与真值 ·机器数  计算机中存储的数据都是带符号的二进制数,例如:5 → 0000 0101 , -5 → 1000 0101  此类数值称之为机器数. ·真值  为区别 ...

最新文章

  1. Datawhale第四期组队学习团队成员
  2. 宋仲基宋慧乔没能找到对的人,算法能帮我们找到么?
  3. procexp.exe中文版---Process Explorer 进程监视V11.21中文版
  4. Golang Context包的使用
  5. 简单实现AJAX: ASP.NET2.0 中回调的实现及常见问题的解决
  6. 再不学习我们就out了
  7. rem、px、em之间的区别以及网页响应式设计写法
  8. 简单的循环以及从接口获取数组对象的一个字段集合
  9. centos7安装kibana5.x
  10. Android 常用的adb命令
  11. Hicharts实现世界地图思路及踩过的坑(含中文GeoJSON数据集及详细代码)
  12. 日本家用电器技术标准及IEC对照介绍
  13. win10虚拟显示器开发
  14. Javascript实现用户注册验证
  15. 汇编语言编译器 masm.exe and link.exe
  16. 【sketchup 2021】草图大师的场景优化工具2【草图大师动态组件的详细使用说明和各个函数说明】【重要】
  17. oracle sequence nextval,SOS!!! Sequence.nextval 的问题
  18. 前缀列表ip prefix-list
  19. word中将一种颜色的突出显示批量替换为另一种
  20. eclipse的使用简介

热门文章

  1. Linux磁盘分区并永久挂载
  2. rsync守护进程部署
  3. C语言RSA实现对字符串加密,C语言实现RSA加解密算法
  4. MarkText下载安装与初始设置 免费markdown的工具
  5. 红外热释电处理芯片 BISS0001
  6. java 秒表_JAVA计时器秒表程序代码
  7. FileReader()用法
  8. uniapp接入支付宝支付详细申请流程2021.6.1
  9. 如何让tomcat告别频繁重启
  10. android_基础_Edittext的setSelection属性