网站 ip修改备案流程,湛江网站制作推广,东莞有什么好玩的地方,php网站打开慢一、位操作符
1.1 #xff08;按位与操作符#xff09;
按位操作符表示两个整数对应的二进制位全部为1才为1#xff0c;有一个为0就为0#xff1b;
例如#xff1a;
515
5转换为二进制 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1…一、位操作符1.1 按位与操作符按位操作符表示两个整数对应的二进制位全部为1才为1有一个为0就为0例如515 5转换为二进制 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 15的二进制 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 515的二进制 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 所以515 5其实我们也可以把他类似的看作逻辑操作符如果两个条件都成立则返回1有1个或1个以上都不成立而当条件为1是就是真当条件为假时就为01.2 |按位或操作符按位或操作符表示只要对应的二进制位有1那么 | 后的结果就是1例如5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 5 | 150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 所以 5 | 15 15同样的我们也可以把他类似的看作||只要其中一个条件成立就返回11.3 ^ 按位异或操作符按位异或操作符表示不同为1相异为0例如5 C 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 5^15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 所以5^15 101.4 ~ 按位取反操作符按位取反操作符表示把一个数的二进制按位取反也就是0变成11变成0例如5: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 ~a: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 按位取反后符号位变成了1我们都知道负数在存储的时候是补码所以还需要把补码转换为原码 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 所以~a -6二、单目操作符单目操作符的特点是只有一个操作数2.1 非操作符非操作符一般用于布尔表达式当中将布尔表达式的值取反即假变成真真变成假就比如ab已经成立返回真非0如果加上(ab)那么这个表达式返回的值就会假02.2 、–是自增操作符用于将整数本身的值增加1例如int a 5; a;a后a就变成了6那么a和a有什么区别呢直接看两个例子inta5;intb0;ba;//先把a的值赋给b然后a的值再自增1ba//a的值先自增然后再把a的值赋给b知道了以后–其实也是类似的2.3 、-这里的和-表示的是一个值的正负号正号可以省略负号不能省略2.4 sizeofsizeof用来求变量和数据类型的大小#includestdio.hintmain(){inta0;printf(%zu\n,sizeofa);//当变量最为参数时括号可以省略printf(%zu\n,sizeof(int));printf(%zu\n,sizeof(char));printf(%zu\n,sizeof(short));printf(%zu\n,sizeof(longlong));printf(%zu\n,sizeof(float));printf(%zu\n,sizeof(double));printf(%zu\n,sizeof(longdouble));}运行结果需要注意的是当sizeof求一个字符串的大小时由于字符串后面会自己补一个\0所以得到的长度会多一个字符的长度#includestdio.hintmain(){charch[]abcdef;printf(%zu,sizeof(ch));}运行结果sizeof也可以求数组的元素个数#includestdio.hintmain(){intarr[]{1,2,3,4,5,6,7,8,9,0};intszsizeof(arr)/sizeof(arr[0]);//数组总大小/数组每个元素的大小就元素个数printf(%d,sz);}运行结果2.5 类型类型也是一个单目操作符就比如int a 0int 就是指定a的类型a就是类型的操作数