C语言第七天自学!---- 复习操作符+使用例子 上:>

一.算术操作符

+    -   *   /   %

1. 除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。

2. 对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数法。

3. %操作符的两个操作数必须为整数。返回的是整除之后的余数。

二.移位操作符

    1.<< 左移操作符

移位规则: 左边抛弃、右边补0

32个二进制位,左移操作符如字面意思就是将其整体想左移动一个二进制位,向左移动几位则右边补上几位,保持整体是32位,再根据二进制算出最后结果

  2.>>左移操作符

移位规则:  1. 逻辑移位 左边用0填充,右边丢弃

     如果是无符号数,不管是左移还是右移都是“逻辑移位” 

 

                    2. 算术移位 左边用原该值的符号位填充,右边丢弃

如果是有符号数 ,则进行算术位移

①,如果是做左移运算,那么做的是“逻辑移位”,同 1中无符号数的左移。

②,如果是做右移运算,那么做的是“算术移位”

                                                      负数(最前面一位是1)

 

                                                     正数(最前面一位是0) 

说白了就是右移不改变最前面一位代表符号的,后面遵循规则移动就好了

也就是说右移和左移都不会改变变量符号

三.位操作符

&   //按位与
|   //按位或
^   //按位异或
注:他们的操作数必须是整数。
  1. 按位与(&):对于每个相应的二进制位,如果两个操作数的相应位都是1,则结果为1;否则为0。
    a = 5  # 二进制表示为 0101
    b = 3  # 二进制表示为 0011
    result = a & b  # 与运算,结果为 0001,即 1
    print(result)  # 输出 1
    
    num = 7
    if num & 1:
        print("奇数")
    else:
        print("偶数")
    
  2. 按位或(|):对于每个相应的二进制位,如果两个操作数的相应位中至少有一个是1,则结果为1;否则为0。
    a = 5  # 二进制表示为 0101
    b = 3  # 二进制表示为 0011
    result = a | b  # 或运算,结果为 0111,即 7
    print(result)  # 输出 7
    
    READ = 1  # 读取权限,二进制表示为 0001
    WRITE = 2  # 写入权限,二进制表示为 0010
    EXECUTE = 4  # 执行权限,二进制表示为 0100
    
    permission = READ | WRITE  # 合并读取和写入权限,结果为 0011,即 3
    print(permission)  # 输出 3
    

  3. 按位异或(^):对于每个相应的二进制位,如果两个操作数的相应位不同,则结果为1;否则为0。
    a = 5  # 二进制表示为 0101
    b = 3  # 二进制表示为 0011
    result = a ^ b  # 异或运算,结果为 0110,即 6
    print(result)  # 输出 6
    
    a = 5
    b = 3
    a = a ^ b
    b = a ^ b
    a = a ^ b
    print(a, b)  # 输出 3 5
    

  4. 按位取反(~):对每个二进制位执行逻辑反转操作,即0变为1,1变为0。
a = 5  # 二进制表示为 0000 0101
result = ~a  # 取反操作,结果为 1111 1010,即 -6
print(result)  # 输出 -6
a = 0b10101010
result = ~a  # 按位取反操作,结果为 0b01010101
print(bin(result))  # 输出 0b01010101
 

四. 赋值操作符

它可以让你得到一个你之前不满意的值。也就是你可以给自己重新赋值。

int    weight = 120;//体重 
       weight = 89;//不满意就赋值 
double salary = 10000.0;
       salary = 20000000.0;//使用赋值操作符赋值。

赋值操作符可以连续使用,使代码简洁且便于检查调试

 a = x = y+1;//连续赋值

 复合运算符就是这么来的,是不是看起来更加简洁明了

 x = x+10;
 x += 10;//复合赋值

再复习一下复合运算符还有这些

+=  -=  *=  /=  %=  >>=  <<=  &=  |=  ^=

前面一个符号就是其需要做的变化,后面等于是说将其操作后的值重新赋给前面的变量

  • 38
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值