编程学习记录——第9课【操作符】

位操作符

移位操作符在不赋值的条件下不会改变被移位对象的值。

左移操作符

操作规则:左位丢弃,右位补零。例如 char a=1;a在计算机内被储存为二进制序列0001;a<<1表示a左移一位即移位成0010 a的值变为2。

右移操作符

右移操作分为算术右移和逻辑右移,算术右移,最右位丢弃,左位用原值的符号位填充。逻辑右移,右位丢弃,左位补0。使用右移操作符时具体是算术右移还是逻辑右移取决于编译器。

按位与/按位或/按位异或,

按位与操作符 & 是双目操作符,按位与:在同一位上若出现一个0,按位与后该位为0,只有都为1时,该位为1。

按位或操作符 | 是双目操作符,按位与:在同一位上若出现一个1,按位或后该位为1,只有都为0时,该位为0。

按位异或操作符 ^ 是双目操作符,按位与:在同一位上若相同,按位异或后该位为0,在同一位上若不同,按位异或后该位为1。

练习代码:求两个数二进制中不同位的个数

思路,通过异或将不同位变成1,再通过移位操作,求出一共有多少个1,从而得出有多少个位不同。

int main()
{
    int a=0;int b=0;int c=0;int count=0;
    scanf("%d %d",&a,&b);
    c=a^b;
    for(int i=0;i<32;i++)
    {
        
        if((c>>i)&1==1) count++;
    }
    printf("%d",count);
}

其他操作符

逻辑与操作符&&以及逻辑或操作符||

逻辑与:当全部为真时,才为真,当一个为假,便为假。逻辑或:当一个为真时,便为真,当全部为假时,才为假。

逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值