c++的~运算符

深入解析C语言中的位取反(~)与逻辑取反(!):从原理到实战应用 本文深入解析C语言中位取反(~)与逻辑取反(!)操作符的核心区别与应用场景。位取反(~)对数据的每个二进制位进行翻转,常用于嵌入式寄存器操作和位掩码生成;而逻辑取反(!)则将非零值转为0,零值转为1,主要用于条件判断和布尔逻辑。文章通过实战案例揭示了常见误区,并提供了防坑指南和高级应用技巧。 阅读详情

     今天一个朋友问起~运算符,他好久不用,忘了怎么用。

      ~运算将二进制的数值中0取1,1取0。我举了个例子,比如2,表示为0000 0010,执行完~运算符号后就变为1111 1101。刚说到这里他觉得不对,因为无论在vc还是在carbid中结果都是-3,刚才那个值负的太厉害了。 这个时候也不知道怎么说好了,就找了一篇有关原码、反码和补码的文章发给了他,后来就没有结果了,但愿弄了清楚。看文章的你弄清楚没有?呵呵

 

       其实高级语言已经把变化做完了,我们看到的都是结果,其过程还需要一些《计算机组成原理》的知识。

       本来就这么个事情不值得写一篇,但是细细想起来很多时候我如同他一样,还是比较浮躁,不重视积累,为了过程而过程,早就忘了曾经的目标。

C++:二进制求补运算符:~ C++:二进制求补运算符:~语法备注~ 的运算符关键字示例 语法 ~ cast-expression 备注 1的补数运算符( ~ ),有时称为按位求补运算符,产生其操作数的按位二进制反码。 即,操作数中为 1 的每个位在结果中为 0。 相反,操作数中为 0 的每个位在结果中为 1。 二进制反码运算符的操作数必须为整型。 ~ 的运算符关键字 C + + compl 将指定为的替换拼写 ~ 。 在 C 中,可选拼写作为宏在标头中提供 <iso646.h> 。 在 c + + 中,替换拼写是关键字; 阅读详情

相关推荐

Python 和 C++ 中的 位运算符和逻辑运算符 区别与联系

[补充]面试题64. 求1+2+…+n

越努力 越幸运 1823

“~”在C语言中的含义

今天看到代码中有一个  a & ~1 的代码,不明白~的意思,百度了一下 ~代表的意思是按位取反,例如 ~1在32位机器中就成了    1: 00000000 00000000 00000000 00000001 ~1:11111111 11111111 11111111 11111110 这个功能可以用来给数字快速分组,例如 for ( i = 0; i < 100; i++)  //每3个

Elta学习 5万+

SAP PCE私有云MM02修改物料主数据基本单位报错

当前发现只有改为AAAADL(无量纲)单位时会报错,其他的正常。一开始以为配置的ISO码换算有问题,对配置排查后,排除配置问题。最后发现是PCE当前版本的原因,需要打上NOTE。SAP PCE私有云在没有库存和业务单据的情况下,MM02修改物料主数据基本单位报错“EA CPZP MK000000000000:PCS 不可转换为”,详见截图。点击【显示错误】,提示EA CPZP MK000000000000:PCS 不可转换为。从SAP FOR ME下载NOTE 3531359,链接。

dingqing86的专栏 519

C语言操作符详解

今天给大家分享C语言中操作符嘻嘻 操作符在平常编程中十分常见,也可以说经常用到。 C语言中操作符有: 算术操作符、 移位操作符、 赋值操作符、 单⽬操作符等多种操作符,让我们一起来详细了解吧。

lrhhappy的博客 1894

大学生智能车竞赛初次尝试经验分享--1(硬件绘制电路,pcb部分)

本人机械电子专业大二暑假参加全国大学生智能车竞赛,之前参加过一些其他类型的比赛有一点基础,由于之前疫情影响所以做智能车比赛断代了,没有学长带也没有思路,从一开始的一头雾水逐渐摸索出我感觉比较实用的经验。 一.首先是硬件的准备工作: 1.硬件部分与要自己设计需要的电路制成pcb。推荐使用Altium Designer20,AD比较常用所以有多实用的教学视频,另外需要自己了解布线规则,包括信号线,电源线常用的宽度 一些电源电路,驱动电路建议用multisim仿真,没有问题再进行制版 单片机有关的需要仿真

weixin_52679034的博客 9831

修复zookeeper未授权访问漏洞

【代码】修复zookeeper未授权访问漏洞。

qq_28392947的博客 4067

“~i“在C语言的for循环中是什么意思

最近看y总的视频,在他的代码里经常出现~1,比如: for (int i = h[u]; ~i; i=ne[i]) { dfs(e[i],depth+1); } 然后我就不解了,去百度了一通。百度说"~"在C语言里面是二进制取反的意思。 我还是有点不解,然后自己写代码测试了一下,得到以下结果: ~-1 = 0 ~0 = -1 ~1 = -2 ~2 = -3 ~15 = -16 有点补码内味了,对于十进制的数来说就是先价格负号,然后-1呗。那么上面那个for里面的~i就等价于i !

蔡尼玛的博客 9564

保姆级教程:用Code Blocks搞定中科蓝讯AB5768E蓝牙音响SDK开发环境(附资源包)

本文提供了一份详细的Code Blocks配置指南,帮助开发者快速搭建中科蓝讯AB5768E蓝牙音响SDK开发环境。从工具链安装、环境配置到工程导入和调试技巧,涵盖全流程避坑要点,特别适合K12开发板初学者。附资源包下载,助您高效完成蓝牙音响开发。

weixin_28692817的博客 448

C语言之~1为什么等于-2(七十二)

计算机并不直接存储二进制原码,而是存储二进制的补码。比如1,原码0000 0001,补码也为0000 0001。而计算机不直接存储负数,而是存储负数的补码,负数的补码计算规则是"在计算机内存中,负数以补码形式存在(即取反,再加一)。步骤2:因为1的补码是负数,所以要还原其原码在输出;补码转换原码的规则:符号不变,先减一,再取反。负数转换补码的规则:取反,再加一,符号不变。所以补码转原码的规则是:先减一,再取反。因为原码转补码的规则是:先取反,再加一。步骤1:首先计算出1的补码,即它本身。

Android系统攻城狮 3726

ABAP OO - ALV_TREE例程

项目上比较少有用到ALV_TREE的报表功能,刚好项目上有写了一次,也查阅大量的范例,整合了一写法,给自己做一下笔记。 程序包含功能按钮,按钮下拉,F4帮助,读取选中行,字段双击触发事件,字段前置图标,更新节点,获取节点数据,获取全部子节点,递归算法,DMS模块:创建文档功能,创建文档链接,SNRO创建流水号,缓存数据,下次用户加载进来继续操作。 *&---------------------------------------------------------------------* *&a

大步甩起来 4989

LIN 协议测试

如下图,使用PicoScope示波器抓取报文Id为0x18的波形,数据场Byte1的长度为519.994μs,Byte1共10bit,计算位时间:tBit= 519.994/10 = 51.9994μs,符合预期。■ 唤醒信号是一个250μs到5ms的显性电平,发送唤醒信号的节点发送唤醒信号后150ms~250ms没有收到其他节点的唤醒信号,发送唤醒信号的节点发送新的唤醒信号。对于LIN主节点,检查发送的帧头长度是否符合设计要求,对于LIN从节点,检查从节点能否正确响应设计范围之内的帧头长度。

m0_63902994的博客 5929

C++自增运算符重载——2022年12月~2023年1月cpp学习记录

我关于Cpp自增运算符重载技术的学习笔记,此博客记录了我在学习该技术的过程中遇到的问题和思考。

strive_max的博客 1776

【异常】OpenAI提示内容有误 Invalid prompt: your prompt was flagged as potentially violating our usage policy.

用户需优先调整提示内容,确保符合OpenAI的使用政策。若问题持续,建议结合请求ID和具体代码示例联系官方支持。同时,可参考腾讯云、Microsoft Q&A等平台提供的错误处理实践(如重试机制、日志记录)优化代码健壮性。

奶爸的编程之路,也就一周冷个三天 2067

【C++】详细讲解C++的运算符~

C++的运算符具体有哪些操作呢?

知识记录 3407

YOLOv8模型改进、剪枝、蒸馏和Web端界面的直观展示

模型蒸馏与性能提升 为了进一步优化YOLOv8模型,可以使用蒸馏技术将大型模型的知识转移到小型模型中。在模型蒸馏过程中,通过定义适当的损失函数和训练策略,学生网络可以学习教师网络的知识,并达到接近教师网络性能的效果。这样做不仅可以减少模型的存储和计算开销,还可以提高模型的推理速度和实时应用的响应能力。这样,用户可以直观地观察到模型的性能和应用的效果。为了优化YOLOv8模型并实现直观地观看检测效果或训练结果的全家通应用,本文将探讨如何通过改进、剪枝和蒸馏技术,并结合Web端界面来提升模型性能。

weixin_51988935的博客 2396

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C++ ~ 运算符

在C语言中,"++"是递增运算符,用于将变量的值增加1。在C++的名字中,"++"象征着C语言的"递增"或"增强",意味着C++是C语言的一个改进版。比喻成计算机里面的“存钱罐”:也是变量(盒子),特殊的变量---->例1:每天往存钱罐里存一定的钱,问:5天后存了多少钱?例2:老师统计班级里每位学生的成绩,并计算总成绩?每次加或者减的数字不是“1”怎么办呢?变量的使用技巧------>“累加器”sum:用来累加数字,统计数字。创建一个新变量(盒子)

fmj_cpp的博客 884

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

"~"运算符在C++中的作用

我们在学习新的知识或是观看某些代码时常常看到 “~” 的符号,它是什么意思,有什么作用呢? 1:“~”的作用 “~”的解释为:对某一常数转化为二进制时对各位进行取反,是一种位运算。 举个例子 “4”的二进制码为 “100” 取反之后——》变为 “011”同时正负颠倒,于是“~4”在数值上等于“-5”; 同理“~1046”=“-1047” ,“~0”=“-1”, 等等。 细心的读者已经发现了 “~...

William_Fangs的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

“~“运算符在C++中的作用

举个例子“4”的二进制码为“100”取反之后——》变为“011”同时正负颠倒,于是“~4”在数值上等于“-5”;我们在学习新的知识或是观看某些代码时常常看到“~”的符号,它是什么意思,有什么作用呢?在这里当进程读入“n,m”失败后,有些系统会返回一个值,我们称之为“EOF”那么有的读者可能会问了:““~”运算符一点也不直观,我们为什么要用它呢?同理“~1046”=“-1047”,“~0”=“-1”,细心的读者已经发现了“~a”="-(a+1)".这里“~EOF”实际上是等于“0”的。

lijiale20150909的博客 608

C和C++的&、|、^、~运算符是什么

“&”:与运算符,双目运算符 “&”运算符,就是按位“与”, 只有两者对应位都为“1”,结果对应位才为 1,否则为 0 1 0 1 0 & 1 1 0 0 = 1 0 0 0 “|”:或运算符,双目运算符 “|”运算符,就是按位“或”,只要两者对应位有一个为“1”,则结果对应位就为 1,否则为 0 1 0 1 0 | 1 1 0 0 = 1 1 1 0 “^”:异或运算符​​​​​​​,双目运算符 “^”运算符,就是按位“

weixin_45027171的博客 9104

c++ 整数取反_c++ 取反运算符“~”

取反符将二进制表示的数字中的0变为1, 1变为0但是需要注意的是c++中对int型进行取反操作时,将前面的前导0也进行了取反(int型变量为32bit)。比如1的二进制表示是00000000 00000000 00000000 00000001~(00000000 00000000 00000000 00000001) = 11111111 11111111 11111111 11111110负数...

weixin_39997443的博客 7503

c++位运算符 | & ^ ~ && ||,补码,反码

目录   一:简介 二:位逻辑运算 三:位移运算 四:反码,补码 一:简介 1 位逻辑运算符:       &amp; (位   “与”)  and       ^  (位   “异或”)       |   (位    “或”)   or       ~  (位   “取反”) 2 移位运算符:       &lt;&lt;(左移)       &gt;&gt;(右移) 优先级...

SabreWulf 1308

c++~第5课-----运算符重载

运算符重载概念: 运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。 运算符的实质:运算符重载的实质本身就是函数调用 运算符重载函数的写法:函数返回值 函数名(函数参数) 五个不能重载的运算符:①.(成员访问运算符)②*(成员指针访问运算符)③::(域运算符)④sizeof(大小运算符)⑤? : (条件运算符) 函数返回值:运算完成后的值决定的 函数名 :operator加上重载运算符组成函数名 参数 :看运算符的操作数,具体...

小杨的博客 739

C++学习:多态与运算符(Day.7~)

运算符类型与运算符重载总结让人明白。表明覆盖意图的限定符 override如图:说明:1.使用关键字const后,由于函数特征不同,派生类不会再隐藏基类方法2.想要覆盖基类方法可使用关键字override,此关键字会强制覆盖基类方法,若覆盖失败,则不能通过编译。

m0_73687800的博客 357

c++位运算符 | & ^ ~ && ||,补码,反码

一:简介 1 位逻辑运算符:       & (位   “与”)  and       ^  (位   “异或”)       |   (位    “或”)   or       ~  (位   “取反”) 2 移位运算符:       (左移)       >>(右移) 优先级 位“与”、位“或”和位“异或”运算符都是双目运算符,其结合性都是从左向右的,优先级高于逻辑运算

c++自学 7万+

黑马:C++运算符重载(121~126)

概念:对已有的运算符重新定义,赋予另一种功能,以适应不同的数据类型 1.加号运算符重载 #include<iostream> using namespace std; #include<string> #include<vector> #include<deque> #include<iterator> #include<list> #include<algorithm> #include<numeric&g

至臻卡比兽的博客 312

C++逻辑运算符

假设变量 A 的值为 1,变量 B 的值为 0。

m0_67033140的博客 728
上一篇: 工信部正式发放3G牌照
下一篇: Palm要翻身?
mickeyfirst
博客等级 码龄25年 82粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值