【C语言取反运算符】~2是多少?~-5是多少?

2023-10-30

标题的答案:
~2=-3
~-3=2
原理是什么?我们先来看这个程序及输出的结果:
在这里插入图片描述
容易总结出这样一个结论:~i=-i-1
为什么呢?
一言以蔽之,~运算符是对i的补码(含符号位)进行取反。
2的原码是0000 0010 正数补码是其本身0000 0010
取反(含符号位)后补码变成1111 1101 此时补码为负数,换成原码要符号位不变,减去1,再取反,即原码成了1000 0011 即为-3

-5的原码是1000 0101 负数的补码是原码符号位不变、取反并+1,因此补码是1111 1011 ,对补码取反(含符号位) 此时补码为0000 0100 补码此时符号位是正,因此原码也是0000 0100 即为4

因此,~i=-i-1。

如果想要更充分的理解这个结论,来考虑一下,对任意一个二进制数取反的含义是什么?1010取反是0101
0100取反是1011,容易看出取反的本质就是找一个数和原来的相加得到每一位均为1的数,因此要找的数就是2^M-1-a,M是位数(例如1010有四位,15-10=5,5就是0101)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C语言取反运算符】~2是多少?~-5是多少? 的相关文章

  • 第七周7.1数组运算课堂学习记录 求素数的方法改进/优化集锦《程序设计入门——C语言》第七期 浙江大学 翁恺

    求素数基本方法及优化 1 基本方法求素数 从2到x 1测试是否可以整除 对于n来说要走n 1遍 n很大时相当于 n 遍 include
  • 输出字符串的子串

    我们经常碰到这样一个问题 怎样快速输出一个字符串的子串 这种问题通常有两种形式 1 输出连续子串 例如 假设字符串的长度为n 其非空子串的数目为你n n 1 2个 例如字符串 abc 的连续子串有 a b c ab bc abc 利用代码实
  • ini配置文件读写操作入门

    ini配置文件读写操作入门 ini文件 Initialization file 这种类型的文件中通常存放的是一个程序的初始化信息 ini文件由若干个节 Section 组成 每个Section由若干键 Key 组成 每个Key可以赋相应的值
  • 【C语言取反运算符】~2是多少?~-5是多少?

    标题的答案 2 3 3 2 原理是什么 我们先来看这个程序及输出的结果 容易总结出这样一个结论 i i 1 为什么呢 一言以蔽之 运算符是对i的补码 含符号位 进行取反 2的原码是0000 0010 正数补码是其本身0000 0010 取反
  • Dev C++使用简明教程

    Dev C 使用简明教程 使用高级语言编程时 我们通常使用一个集成开发环境IDE Integrated Developing Enviroment 简称IDE 来进行编辑 编译 运行和调试工作 Dev C 是一个Windows环境下C C
  • #define宏定义详解

    define宏定义 1 常规用法 无参宏 define PI 3 1415926 define EN 1e5 定义指数1 10e5 cout lt
  • 【LeetCode刷题】-岛屿数量

    Task 思路 1 首先判断给定的二维数组是不是空的 2 对二维数组遍历一下 对每个元素进行判断 a 如果这个值等于1 那么就把计数器 1 并且对该元素四周进行深度搜索 3 返回 代码 class Solution public int n
  • 苏小红版 c语言程序设计(第三版)系列实验题:学生成绩管理系统V2.0

    github https github com Jackie0Feng SAMS 系统需求描述 某班有最多不超过30人 具体人数由键盘输入 参加某门课的考试 用一维数组和函数指针作为函数参数编程实现如下学生成绩管理 1 录入每个学生的学号和
  • 苏小红版 c语言程序设计(第三版)系列实验题:学生成绩管理系统V5.0

    github https github com Jackie0Feng SAMS 系统需求描述 某班有最多不超过30人 具体人数由键盘输入 参加期末考试 考试科目最多不超过6门 具体门数由键盘输入 定义结构体类型 用结构体数组作函数参数编程
  • 推荐一款好用的redis客户端工具

    推荐一款好用的redis客户端工具 redis官方客户端 redis cli 每次都要指定连接IP与端口 连接成功后还要执行auth命令进行口令认证 这个过程比较繁琐 auth命令需要人工干预 不方便自动化执行redis命令 给大家推荐一款
  • 苏小红版 c语言程序设计(第三版)系列实验题:学生成绩管理系统V6.0

    github https github com Jackie0Feng SAMS 系统需求描述 某班有最多不超过30人 具体人数由键盘输入 参加期末考试 考试科目最多不超过6门 具体门数由键盘输入 学生成绩管理系统是一个非常实用的程序 如果
  • android___android_log_print打印函数__源代码

    android端JNI的打印信息 include
  • C 、C++ 、Java、Python、JavaScript数据类型对比介绍

    C C Java Python JavaScript数据类型对比介绍 C C Java Python JavaScript数据类型对比如下 C语言 静态类型语言 需要在声明变量时指定类型 基本数据类型包括 整型 int 通常分为有符号 si
  • Windows中使用GCC介绍

    Windows中使用GCC介绍 GCC介绍 GCC是由许多组件组成的 GCC原名为GNU C语言编译器 GNU C Compiler 只能处理C语言 但其很快扩展 变得可处理C 后来又扩展为能够支持更多编程语言 如Fortran Pasca
  • C++修饰构造函数的explicit关键字

    C explicit关键字的作用主要是用来修饰类的构造函数 表明该构造函数是显式的 禁止单参数构造函数的隐式转换 如果C 类的构造函数有一个参数 那么在编译的时候就会有一个缺省的转换操作 将该构造函数对应数据类型的数据转换为该类对象 如下面
  • C++ STL - vector 模拟实现+解析迭代器

    目录 vector使用 vector模拟实现 vector实现解析 memcpy进行元素拷贝问题 扩容问题 vector迭代器解析 vector迭代器失效问题 1 示例一 一个典型的迭代器失效bug insert实现 2 示例二 inser
  • C/C++中的数据结构对齐,#pragma pack() 和 __attribute__

    C C 中的数据结构对齐 总览 数据结构对齐是指在计算机内存中排列和访问数据的方式 它包含三个独立但相关的问题 数据对齐 data alignment 数据结构填充 data structure padding 和打包 packing 当数
  • windows下使用CMake构建工程:cmake-gui+Visual Studio

    文件结构 在工程目录下构建目录src thirdparty build src 存放自己写的源代码文件 thirdparty 存放使用的第三方库 build 存放编译时生成的文件 因为很多很杂乱 所以单独目录存放 保持项目文件夹整洁 在bu
  • c++类模板与继承详解

    c 类模板 继承 详解 类模板和类模板之间 类模板和类之间可以互相继承 它们之间的派生关系有以下四种情况 1 类模板继承类模板 2 类模板继承模板类 3 类模板继承普通类 4 普通类继承模板类 include
  • C++程序的基本组成简介

    C 程序的基本组成简介 C 程序的基本组成 这个C 程序例子 由一个程序单位 程序文件 注 组成 这是一个简单例子未使用类 注 其中包括 1 头文件 可以认为头文件是你在调用函数时的一个桥梁 格式为 include 引用文件名 c 的程序是

随机推荐

  • 6个高级Python技巧

    前言 Python是一种面向对象的语言 它与英语非常相似 因此对于初学者来说是一种非常好的语言 它的高级特性和受支持的库包甚至可以用几行代码来编写复杂的任务 在本文中 我们将介绍python的一些高级特性 掌握这些特性可以让你的编程更加顺畅
  • Linux: android studio AVD emulator启动不了

    前置条件 目前我台式机电脑的情况是 OS Slackware Linux 14 1显卡 NVidia 独立显卡 用于 GPU计算 Intel i3 集成显卡 用于连接 43寸液晶显示器 今天安装当前最新版本的 android studio
  • 创建型模式 - 单例模式

    核心 严谨起见 私有构造必须要加 避免外部创建新的实例 特性 单例类只能有一个实例 单例类必须自己创建自己的唯一实例 单例类必须给所有其他对象提供这一实例 常用的几种单例模式写法 懒汉方式 双重锁方式 静态类方式 每种方式对应的特性 方式
  • endnote 参考文献加序号_EndNote使用教程(基础)

    写在前面 公众号内左侧第一栏里面有下载链接 可按需下载 声明 本公众号所有软件资源均来自互联网 仅限学习技术交流 不得用于商业用途 请于下载后的24小时内删除 如需体验更多乐趣 请支持正版 你是否对以下情景感到眼熟 想快速插入参考文献 想快
  • Spring+SpringMVC+Mybatis SSM框架详解

    一 JDBC编程 1 JDBC 简介 JDBC其实就是 Java 官方提供的一套规范 接口 用于帮助开发人员快速实现不同关系型数据库的连接 程序运行的时候 数据都是在内存中的 当程序终止的时候 通常都需要将数据保存到磁盘上 无论是保存到本地
  • chatgpt赋能python:简单好玩的Python程序——让你爱上编程

    简单好玩的Python程序 让你爱上编程 Python语言在最近的几年迅速崛起成为最流行的编程语言之一 它的语法简单易懂 代码可读性强 是初学者学习编程的极佳选择 今天我想分享一些简单好玩的Python程序 让你体验Python编程的乐趣
  • 电信运营商走在云时代:从“基础联接”到“万物智联”

    从语音通话业务到互联网业务再到云计算业务 从 光改 奔向 云改 中国的运营商们正在实现基础连接到万物智联的跨越 作者 斗斗 编辑 皮爷 出品 产业家 日新月异的技术创新 为电信运营商带来了持续不断的行业变革 短短几年光景 随着移动互联网的迅
  • 【HTML+CSS+JavaScript】实现鼠标点击烟花效果

    文章目录 HTML CSS JavaScript 实现鼠标点击烟花效果 爆炸型 心型 圆形 一 效果图 二 鼠标点击烟花效果 心型实现代码 1 HTML部分代码 2 CSS部分代码 3 内部的JavaScript部分代码 三 鼠标点击烟花效
  • 伸缩自如的ElasticSearch——ElasticSearch-sql安装及使用

    文章目录 安装ElasticSearch sql 安装es sql site 安装ElasticSearch sql 安装地址 ES sql地址 注意安装版本要与ES版本一致 这里是6 7 1 安装完成后 解压 将解压后的文件夹放入ES的p
  • 【DirectX11学习01】用一个类封装DirectX的初始化

    DirectX的初始化步骤较为繁琐 这里将DX的初始化扔进类的初始化 构造函数 里 如果构造函数里还要执行其他逻辑 那就最好把D3D的初始化扔进一个内联函数 这样能够更好地区分逻辑 下次要使用的时候 就直接继承该类 然后在这基础上写自己的东
  • 软件测试c语言代码_软件测试理论知多少?

    有源医疗器械很多都是带有软件的 今天一起了解下软件测试理论 软件测试目的 软件测试定义 软件测试原则 软件测试分类 软件测试方法 测试基本流程 软件测试定义 软件测试 英语 software testing 描述一种用来促进鉴定软件的正确性
  • CVPR 2018值得一看的25篇论文,都在这里了

    作者丨李光睿 学校丨重庆大学本科在读 研究方向丨计算机视觉 Unsupervised Person Image Synthesis in Arbitrary Poses Image Synthesis CVPR 2018 Spotlight
  • 排序算法之奇偶排序

    排序算法之奇偶排序 奇偶排序的基本思想就是先对奇数列进行一趟排序 比较奇数列和其相邻的偶数列的元素 如果逆序则交换 再对偶数列进行一趟排序 比较偶数列和其相邻的奇数列的元素 如果逆序则交换 接着对奇数列进行排序 再对偶数列进行排序 重复进行
  • windows7linux双系统,win7下安装Linux实现双系统全教程

    经过大半天的摸索与实验终于在自己的电脑上成功的装上了Win7和Linux的双系统 现在我把详细的流程给大家分享了 希望有兴趣的可以去试试 下面为大家介绍win7下安装Linux实现双系统全攻略 材料 工具 4G的U盘 Linux系统 软碟通
  • 计算机wifi无法打开,教你win10系统WiFi热点无法打开的修复教程

    最近有windows10系统用户反馈 遇到了WiFi热点无法打开的问题 打开WIFI热点我们可将我们电脑的网络共享给手机 使我们的手机能够节省一些流量 怎么办呢 就此问题 接下来小编教你win10系统WiFi热点无法打开的修复教程 很多wi
  • C# 给自己写的软件,加注册码功能

    由于永和的项目里边用到了这个功能 因此在网上找到了 直接贴过来 复用一下 为自己写的程序加一个注册功能吧 生成的机器号是根据CPU和硬盘号来的 根据自己的需求改成是否是随机生成 代码直接粘贴到新建类覆盖原代码就能直接用了 using Sys
  • 探索IP地址的应用

    无论是互联网行业还是传统行业都会用到网络 作为企业如何维护网络安全 保障网站不被攻击 数据不被泄露等 这个时候我们就会通查询IP归属地 辅助企业解决安全问题 下面介绍一下ip归属地在各行业的具体应用 1 网安行业 应用一 提升企业网络资产检
  • cocos2dx使用CocosBuilder(编辑器)完成基础骨骼动画

    转载自 黑米GameDev街区 原文链接 http www himigame com cocosbuilder 1061 html 点击订阅 本博客最新动态 及时将最新博文通知您 关于CocosBuilder 已经成为cocos2d coc
  • 抖音壁纸表情包小程序源码,可对接流量主

    抖音壁纸表情包小程序源码 可对接流量主 抖音壁纸表情包小程序源码 可对接流量主 抖音壁纸表情包小程序源码 可对接流量主 抖音壁纸表情包小程序源码 可对接流量主 星光壁纸 我的页面
  • 【C语言取反运算符】~2是多少?~-5是多少?

    标题的答案 2 3 3 2 原理是什么 我们先来看这个程序及输出的结果 容易总结出这样一个结论 i i 1 为什么呢 一言以蔽之 运算符是对i的补码 含符号位 进行取反 2的原码是0000 0010 正数补码是其本身0000 0010 取反