设为首页 加入收藏

TOP

C++中的位运算符
2014-11-24 01:40:33 来源: 作者: 【 】 浏览:1
Tags:运算

等级考试要考C++,我平时得留心着点儿,经常总结一下,会有好处吧,先总结一下C++中的运算符。


在我们学习的VB编程语言中运算符都包含了那么几类:算术运算符、逻辑运算符、关系运算符、赋值运算符等。


这算是C++与其的共性吧。当然作为一门独立的语言,它也会有专门属于自己的运算符。或者说目前我认为,这个是我新接触到的一些运算符(其他的编程语言没怎么接触过)。


1、位运算符


一种二进制运算符,分为移位运算和按位运算。


此运算符,在操作时,要先将操作数按二进制形式逐位进行逻辑运算和操作。


1.例如:


unsigned char c(135)二进制表示为10000111


对于取反(~):即将原来的0变为1,把原来的1变为0,最后为01111000,即为十进制中的120


2、左移<<:是操作数向左移动其右操作数所指定的位数,移出位补0


unsigned char d(43) d<<1


43的二进制表示为:00101011,统一将数字向左移动一位,为01010110,即十进制的86


根据这种原理,其实每当左移一位时,结果为操作数*2,移两位,操作数*4。。。依次为操作数*2^n


同理,右移为除法


3.异或运算,我个人认为这个还是有点儿难理解的。规则为;"同则为0,异则为1"


个人观点:异或,只有不相同的才能称之为“异或”,那么相同则不符合条件,这里1代表true,0代表false,那么只有几个同时满足某个条件时,此时,不符合异或的条件,那么结果为0.若两个数中只有一个或几个而不是全部,那么结果为1.


以上,是C++中关于位运算符的一些收获,此外,在使用位运算符时,还应注意优先级问题和溢出问题。


优先级; 2、位求反 (~)


6、左移(<<)、右移(>>)


9、位于(&):其实就是且运算


10、异或(^)


11、位或(|):或运算


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Netty的ChannelPipeline 下一篇C++中的特殊运算符

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: