课堂笔记--位运算

来源:互联网 发布:淘宝司法拍卖佣金 编辑:程序博客网 时间:2024/06/18 13:01

i++先使用后自加

++i先自加后使用

int i = 2

int num;

(1)num =i+++i+++i+++i++;   结果i=6  num=8

(2)num =++i+++i+++i+++i;   结果i=6  num=19

(3)I = i *((i+++++i));              结果i=19

(4)i = (i++) + (++i) + (i++) + (++i);               结果i=15

(5)i = (++i) + (i++) + (++i) + (++i);               结果i=16

 

函数传参从右边开始传i++替换成数值  ++i替换成变量

int i = 2;

func++i, i++;    结果a=4  b=2

func++i, i++,i++, ++i, i++;    (7,5,4,7,2)

funci++, i++, ++i, i++, ++i;   (6,5,7,3,7)

 

位运算处理的是无符号数

右移用符号位来补位,左移用0来补位

 

按位与运算通常用来对位清零或保留某些位

按位或运算通常用来将源操作数某些位置1,其他位不变

异或通常用来使特定位的值取反或者不引入第三方变量,交换两变量的值

 

不引入第三方变量,交换ab的值。

a=a^b;

b=a^b;

a=a^b

或:

a=a+b;

b=a-b;

a=a-b;

第一种方法更好,因为加减法做大数操作时会溢出。

 

0 0
原创粉丝点击