Bootstrap

c语言操作符:+ - * % / & | ^ && || >> <<

目录

算术操作符:

位操作符:& | ^

按位与&:

按位或|:

按位异或^:

关于++ 和 -- 前置和后置的关系:

位移操作符:处理的是二进制的数字


算术操作符:

+:加法

-:减法

*:乘法

/:除法

%:求余( 3 % 2 = 1;)

注意:处理的数据都是整型,如果要处理浮点型数据(小数),两边需要有至少一个小数

 因为,/默认处理的是整型的数据

位操作符:& | ^

(位操作的运算,需要写出数字的二进制形式,再进行计算对比)

位操作符用于控制二进制

一个整型是4个字节,一个字节8个比特位,一个比特位就是一个二进制位

关于二进制:有符号位置首位置代表正负,1代表负数,0代表正数

比如1&1:1的二进制位是:00000000000000000000000000000001

注意:计算机储存的都是补码,显示的是原码。因此,位操作符操作的都是补码   

注意:对于正数来说,原码,反码,补码是相同的,不需要计算

           只有对于负数来说,原码,反码,补码才需要计算

补码得到原码有两种方式:(注意:取反时,符号位不变

一、先-1再取反

二、先取反再+1

    

按位与&:

只有两个都是1才是1,只要有一个是0则为0

1   1  -> 1

1   0  -> 0

0   1  -> 0

0   0  -> 0

按位或|:

只要有一个是1,结果为1

1   1  ->1

0   1  ->1

1   0  ->1

0   0  ->0

按位异或^:

相同结果为0,相反则为1(这个有些别扭,需要特别记忆)

1   1  ->0

1   0  ->1

0   1  ->1

0   0  ->1

相同为0,例如:a^a = 0,自己和自己按位异或计算,结果就是0;

而任何数字和0按位异或计算,将得到其本身,a ^ 0 = a;

这里有个实例: 不创建第三个中间变量交换两个变量值

关于++ 和 -- 前置和后置的关系:

前置:只要是前置,就是先加再使用,加减遵循同样的规则

Int A = 1;

Int B = 1;

B = ++A;

后置:只要是后置,就是不动,先使用,后加减

这里a的后置++不会影响b的值

Int A = 1;

Int B = 0;

B = A++;

位移操作符:处理的是二进制的数字

>>  右移

<<  左移

>>:二级制数字往右边移动一位,右边丢弃一个二进制位,左边补一个0或1,原来是负数补1,原来是负数补1;

相当于是十进制的数字除2

例如:

2的二进制: 00000000000000000000000000000010

往右移一位   00000000000000000000000000000001

这个值为1

右边丢弃一位,左边补进一位,正数补0,负数补1

<<:二进制数字往左边移动一位,左边的数字丢弃,右边补一个0,相当于乘2

2的二进制:   00000000000000000000000000000010

往左边移一位 00000000000000000000000000000100

这个数为4

;