C3节:位操作符,逻辑操作符,三目运算符

负数二进制计算方法
     整数二进制先做按位求反然后再加1.

62   = 32 + 16 + 8 + 4 + 2
     = 0011 1110
-62  = 1100 0001 + 1
     = 1100 0010

已知某个二进制数字,也可以采用上述方法计算出相反数的二进制。

某个数据类型中最小的负数的二进制形式是一个1右边全是0,例如char类型的最小负数二进制是1000 0000

一个有符号类型变量中最左边的二进制位称为符号位,如果是负数则符号位一定是1.
变量中首个二进制位为1不能说明正负,需要结合类型有无符号判断。

C语言中支持加减乘除四则运算符
%表示取余操作符

赋值操作符优先级很低但是比,优先级高
多个赋值操作符从右向左计算
赋值操作符左边必须是变量

复合赋值操作符(例如+=,-=,*=,/=等)优先级和赋值操作符一样

自增和自减操作符用于对变量内容做加一减一操作
自增和自减操作符只能对变量进行操作
前自增和前自减的优先级几乎是最高的
后自增和后自减的优先级几乎是最低的
不要在一条语句中对同一个变量做多次自增或自减计算(*)

逻辑表达式的结果只能是真或假
C语言中0代表假,1代表真
逻辑操作符用来编写逻辑表达式
等于(==),不等于(!=),大于(>),大于等于(>=),小于(<),小于等于(<=)

所有整数数字都可以当逻辑表达式使用。0对应假,其他所有整数都对应真。

!也是一个逻辑操作符,表示求反。

bool表示布尔类型,只包含true和false两个数值。需要在文件中加入如下语句
#include <stdbool.h>

逻辑操作符的优先级比算数操作符低

与(&&)和或(||)都可以用来把两个简单逻辑表达式合并成一个复杂逻辑表达式
两个逻辑表达式都是真则用&&连接后得到的表达式才是真
只要两个逻辑表达式中有一个为真则用||连接以后的表达式就是真

逻辑表达式练习:
   1.考试成绩在70到79之间的逻辑表达式
   2.考试成绩在90到100之间的男生或60以下的女生

&&和||都具有短路特征(如果前一个表达式能决定最终结果则不会计算后一个表达式)

位运算符(针对二进制计算)
按位与(&)
    0 & 0   0
    0 & 1   0
    1 & 1   1

3 & 5 = 0000 0001 = 1
用于把某些二进制位清0

按位或(|)
    0 | 0   0
    1 | 0   1
    1 | 1   1
3 | 5 = 0000 0111 = 7
用于把某些二进制位设置1

按位异或(^)
    0 ^ 0   0
    1 ^ 1   0
    0 ^ 1   1
3 ^ 5 = 0000 0110 = 6
用于把某些二进制位求反

移位操作符
    左移(<<)和右移(>>)
    左移时空位置补0
    3 << 2 = 0000 1100

    右移时有符号类型空位置补符号位
    无符号类型空位置补0
    -16 >> 2 = 1111 1100

    右移一位相当于除以2
    左移一位相当于乘以2

按位求反(~)
    把二进制中的每个数位变成相反
    ~(-2)   1

&可以获得变量地址,例如&num
*可以根据地址数据找到变量,例如*(&num)

三目运算符(? :)
    可以根据一个逻辑表达式的结果从两个计算公式中选择一个执行。
    逻辑表达式为真时对应的计算公式写在前面

/*
    三木操作符练习
*/
#include <stdio.h>
int main() {
    int num = 0, value = 0;
    printf("请输入一个数字:");
    scanf("%d", &value);
    num = value >= 0 ? num + 1:num - 1;
    printf("计算结果是%d\n", num);
    return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值