一、移位操作符
1.右移操作符
分为两种:
- 算数右移:右边丢弃,左边补原符号位
- 逻辑右移:右边丢弃,左边补0
注:现在的计算机一般都是用第一种:算数右移
举例:
#include
int main()
{
int a=16;
int b=a>>1;
printf("%d",b);//b=8
//00000000000000000000000000010000
//00000000000000000000000000001000
}
首先,要了解原码、反码、补码(简单说一下)(这里很重要)
整数在内存中存储的形式是补码的二进制。
整数的二进制表示:有3种(原码、反码、补码)
原码:直接根据数值写出的二进制序列就是原码(32位)
反码:原码的符号位不变,其他位按位取反就是反码
补码:反码加1,就是补码
2.左移操作符
规则:左边丢弃,右边补0
二、位操作符服务器托管网(它们的操作数必须是整数)
1.按位与 &(按二进制与)
#incldue
int main()
{
int a=2;
int b=4;
int c=a&b;
//1&1=1
//1&0=0
//0&1=0
//0&0=0
//a:0000000000000000000000000000010
//b:0000000000000000000000000000100
//a&b:0000000000000000000000000000000
printf("%d",c);//c=0
}
2.按位或和按位异或
和按位与一样,按位或与按位异或都是按二进制或,按二进制异或的
#include
int main()
{
int a=3;
int b=13;
int c=a|b;
//1|1=1
//1|0=1
//服务器托管网0|1=1
//0|0=0
//a=00000000000000000000000000000011
//b=00000000000000000000000000001111
//c=00000000000000000000000000001111
printf("%d",c);//c=15
int c=a^b;
//1^1=0
//1^0=1
//0^1=1
//0^0=0
//a=00000000000000000000000000000011
//b=00000000000000000000000000001111
//c=00000000000000000000000000001100
printf("%d",c);//c=12
霞姐还会讲解其他的操作符,感兴趣可以追更哦。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net