等级考试要考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、位或(|):或运算