零基础C语言学习

                *c语言学习笔记(十六)*

操作符详解(一)

1、/ :表示除运算,结果可以放在整型数据里面(小数点部分内容丢失),也可以放在浮点型数据里面

2、% :取模运算,注意取模运算不可包含浮点型数,只能在整数取模中运算。

3、右移操作符:右移或者左移操作符移动的都是对应数字的二进制
对于移位操作符,有两种移动法
(1)算术移位:算术移位考虑原数字的符号位。规则是右边舍弃,左边补符号位
(2)逻辑移位:不考虑正负,右边丢弃,左边补0
在计算机中通常采用算术移位,而且右移一位有除二的效果;整数有三种表示方法,即:原码,反码和补码。存储在计算机内存中的为补码,而移位操作也是在补码的基础上进行操作的,现在假设对-1进行移位操作
首先写出-1的原码:
1000 0000 0000 0000 0000 0000 0000 0001
那么他的反码为:
1111 1111 1111 1111 1111 1111 1111 1110
补码原则为反码加一:
1111 1111 1111 1111 1111 1111 1111 1111
这里在补充一下关于正负数的原码反码和补码的关系:
对于正数来说,他的原码补码和反码都是相同的;
而对于负数来说,则需要遵从以下规则:
反码:符号位不变,其余为按位取反
补码:反码+1

注:对于移位操作,我们可以移动一位或者n位,但是注意不要移动负数位,这是标准未定义的。
4、位操作符有:
& 按位与
| 按位或
^ 按位异或 他们的操作数都必须为整数
位操作符顾名思义,他们也是对数的二进制形式进行操作。
与或非简单逻辑就不再多说,对于异或来说,他的原则是:相同为0,相异为1
5、赋值操作符
要注意赋值操作符和判断相等的区别,赋值为=,判断相等为==
其次,赋值操作符可以进行连续赋值,但是不推荐这种连续赋值
例如:a=y=x+1 降低了代码的可读性
对于复合赋值符
有+=、-=等等。
6、单目操作符
! 取反操作符;- 负值;+ 正值;& 取地址符;
sizeof 操作数的类型长度;
~ 对一个数的二进制按位取反;- - 前置后置- -;
++ 前置,后置++;* 间接访问操作符(解引用操作符)
(类型) 强制转换类型
注意:sizeof计算的是变量所占内存空间的大小,单位是字节。
7、三目操作符
三目操作符表达式为:表达式1 ? 表达式2:表达式3
他在逻辑上的顺序是程序首先判断表达式1是否成立,若表达式1成立,则执行表达式2,若1不成立,则执行表达式3;
举个例子:

int a = 2;
int b = 0;
b = (a > 2 ? 3 : 5);
printf("%d ", b);

按照逻辑原则,此时的b输出是5.
8、逗号表达式
逗号表达式就是要逗号隔开的表达式,从左向右依次执行,整个表达式的结果是最后一句表达式的结果。
在if语句里面,如果判断部分的括号里面有多个表达式,那么起判断作用的为最后一个表达式,
if(表达式1,表达式2,表达式3)
{
语句;
}
下面举个例子来验证下,我们首先给出两个假命题,最后一个为真命题。

int a = 1;
int b = 2;
int c = 3;
if (a > 1, b > 2, c > 2)
{
	printf("QWQ!");
}

编译运行之后,尽管前面两个都是假命题,但是我们还是能够得到屏幕的输出结果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值