C语言之运算符二

1、逗号运算符

/*
	程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。
	并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。
*/
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
	int a=3,b=5,z;
	z=a>b,a+b;//在这个运算过程中,逗号的运算优先级比赋值运算的优先级要低,因此应该先算赋值运算,再算逗号运算
	printf("%d",z);
	z=(a>b,a+b);//在这个运算过程中,赋值的运算优先级比特殊运算符的优先级要低,因此应该先算特殊运算,再算赋值运算运算,在特殊运算中,逗号运算的结果是输出逗号后面的数。
	printf("%d",z);
	system("pause");
	return 0;
}
2、位运算符

#include<stdio.h>
#include<stdlib.h>

int main(void)
{
	int a=9,b=5,c;
	c=a&b;
	printf("%d\n",c);//按位与运算符"&"是二元运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
	c=a|b;
	printf("%d\n",c);//按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。
	c=a^b;
	printf("%d\n",c);//按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1.相同为0.
	c=~a;
	printf("%d\n",c);//求反运算符~为单目运算符,具有右结合性。 其功能是对参与运算的数的各二进位按位求反。
	c=a<<4;
	printf("%d\n",c);//左移运算符“<<”是双目运算符。其功能把“<< ”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数
	c=b>>4;
	printf("%d\n",c);//右移运算符“>>”是双目运算符。其功能是把“>> ”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。
	// 应该说明的是,对于无符号数,在移动的时候前面补0,对于有符号数,在右移时,符号位将随同移动。当为正数时, 最高位补0,而为负数时,符号位为1
	system("pause");
	return 0;
}
在求反运算中需要注意一些问题:
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
	short a=0xf45a,b;
	b=~a;
	printf("%x\t%x",a,b);//这个的结果说明在运算中如果%x表明了将结果以int的形式给输出,如果结果前面为1则前面的几位都为1,如果为0,则前面的也为0.
	system("pause");
	return 0;
}





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值