按位取反运算符 ~  一元运算符,对应的二进制位,0变为1,1变为0。

分析:

由于负数的原码,补码,反码不同

因此将要进行计算:

补码—>反码—>原码

原码—>反码—>补码

原码二进制位全部将将1变为0,0变为1,得到反码

反码+1得到补码(反码加的1位最右位的1)

例如:

正数:

Int a=15

设a=15为a1

此时a1的原码为:0……0,0……0,0……0,00001111

因为a1为正数(正数的补码,反码,原码相同),因此进行取反运算:

设~a为a2,

因此得:a2的原码为:1……1,1……1,1……1,11110000

所以a2的反码为:1……0,0……0,0……0,00001111

补码=反码+1:所以a2的补码:1……0,0……0,0……0,00010000(二进制逢二进一)

所以a2=-16

负数:

在使用~计算负数时,由于在计算机中,负数的补码,反码,原码不同,因此首先将操作数的值计算为补码,再进行取反运算;

Int a=-15;(a=-15为原码);(在计算机中负数以补码的形式存在)

此时,首先进行从原码到补码的计算:

原码为-151:……1,1……1,1……1,00001111

反码:1……1,1……1,1……1,11110000(将原码换算为反码:将原码的值取相反数,1变0,0变1)

补码:补码=反码+1:1……1,1……1,1……1,11110001

此时进行取反运算(包括符号位也要变):0……0,0……0,0……0,00001110:14

所以

~a=14;

取反运算符公式:

n=-(n+1)

时刻牢记计算机中二进制以补码的形式存在

c语言的按位取反运算符相关推荐

  1. C语言中八进制和16进制怎么表示,原码,反码及补码,C语言按位取反运算符~

    借鉴被人的 C语言中8进制和16进制怎么表示 C语言本身支持的三种输入是: 1. 十进制.比如20,457: 2. 十六进制,以0x开头.比如0x7a: 3. 八进制,以0开头.比如05,0237 所 ...

  2. c语言的44种运算符,C语言重要知识点总结【9】:C语言运算符(详解)

    目录 一.前言 二.运算符分类 三.运算符的优先级 四.常用运算符 1. 算术运算符 2. 关系运算符 3. 逻辑运算符 4. 赋值运算符 5. 条件运算符 6. 逗号运算符 7. 强制类型转换运算符 ...

  3. 位运算符之---按位取反运算符(简单易懂)

    前言: 位运算符是用来对二进制位进行操作的 c语言中有6种位运算符: & 按位与 [链接]: https://blog.csdn.net/weixin_42837024/article/det ...

  4. c语言的int型运算符,C语言运算符

    本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! C语言运算符是说明特定操作的符号[1] ,它是构造C语言表达式的工具[2] .C语言的运算异常丰富,除了控制语句和输入输出以外 ...

  5. c语言的运算符分类ppt,c语言的数据类型、运算符与表达式.ppt

    c语言的数据类型.运算符与表达式.ppt 第3章数据类型.运算符与表达式,预备知识 数据类型 常量与变量 不同类型数据间的转换 运算符和表达式3.0 预备知识 计算机中数的表示及进制转换 数码.基与权 ...

  6. 详解C语言中的位操作运算符可以怎么用?

    目录 前言 位运算符介绍 位运算符的应用 一般案例 特殊用法 前言 最近在工作中碰到C语言中的位操作运算符,然后发现自己对这一块的内容比较模糊,所以打算写一篇博文记录这个知识点,今天是3月份的最后一天 ...

  7. %3c- r语言运算符,R语言基础教程之运算符

    原标题:R语言基础教程之运算符 运算符类型 在R编程中有以下类型的运算符 - 算术运算符 关系运算符 逻辑运算符 赋值运算符 其他运算符1.算术运算符 下表显示了R语言支持的算术运算符.运算符对向量的 ...

  8. c的按位取反运算符(~) 与逻辑逻辑(!)

    位运算     位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果. 位运算符有:     &(按位与).|(按位或) ...

  9. C语言中的位运算符主要有哪些?逻辑右移与算术右移的区别?

    逻辑右移与算术右移的区别? 逻辑右移就是不考虑符号位,右移一位,左边补零即可. 算术右移需要考虑符号位,右移一位,若符号位为1,就在左边补1,:否则,就补0. 所以算术右移也可以进行有符号位的除法,右 ...

  10. c语言运算符类型转换,C语言中强制类型转换运算符的独特作用

    C语言中强制类型转换运算符的独特作用 在C语言中有一个强制类型转换运算符,它为C语言中的数据类型转换带来 (本文共2页) 阅读全文>> 在进行C++类的设计时,我们常常需要为类对象设计运算 ...

最新文章

  1. MPLS *** Trouble Shooting 笔记
  2. 声音信标发出白噪声和发出chirp信号的对比测距说明
  3. python中调用函数时必须有实参_Python之函数(一)定义函数以及传参
  4. Elasticsearch--建议器
  5. C++之类模板最简单的使用
  6. 漫步最优化三十九——Fletcher-Reeves法
  7. Rabbtmq 消费端-幂等性保障
  8. 【opencv】通过摄像头进行实时边缘检测
  9. Java开发中巧妙使用链表来实现模拟栈的入栈出栈操作
  10. Dinic PK Isap
  11. colorkey唇釉是否安全_colorkey小黑镜唇釉好用吗
  12. 华尔街(Wall Street)与先锋集团(Vanguard )之间的战争
  13. 企业wiki之confluence安装部署(linux)及其破解
  14. Bzoj2882 工艺
  15. c语言ftell函数_使用示例的C语言中的ftell()函数
  16. 基于cpolar内网穿透工具ssh远程访问linux服务器
  17. CAD arx常用函数
  18. 极客大学python进阶训练营_极客大学Python进阶训练营新版2.0
  19. Python 简易图形用户界面计算器
  20. mysql 1236错误_mysql报1236错误代码该如何解决

热门文章

  1. 多个条码标签如何在一张纸上打印
  2. mysql jdbc 5.6_mysql5.6 jdbc驱动官网下载|
  3. php 按指定长度分割字符串,php实现将字符串按照指定距离进行分割的方法
  4. 二进制转换八进制图解_二进制如何转换成八进制?
  5. 经验总结:完整做完一款游戏需要经历哪些流程?
  6. eova1.4版本下拉框没有滚动条
  7. matlab——矩阵运算
  8. SQL2014 MySQL_SQL Server 2014 Express 官方免费版下载
  9. 使用pyinstaller打包python源代码生成exe程序
  10. 2016年统计用区划代码和城乡划分代码(截止2016年07月31日) 省市县镇+url