C语言之位运算、逗号运算、类型转换运算

C语言之位运算、逗号运算、类型转换运算,第1张

1.位与运算

表达式:

*** 作数1& *** 作数2

注释:按位与运算是将参与运算的两个数据按对应的二进制数逐位进行逻辑与运算。当两个 *** 作对象二进制数的相同位均为1时,结果数值的相应位为1,否则为0。

 例题:用一个32位整数存储一个32门开关电路状态。

例:0000 0000 0000 0001说明第一个开关是开;

0000 0000 0000 0010说明第二个开关是开。

#include
#include
#include
int main()
{
	int a;
	scanf("%d",&a);/*从键盘输入一个值*/
	bool ret;
	ret=a&1;//如果ret=true第一个开关开
	printf("\n%d",ret);
	ret=a&2;//如何ret=true第二个开关开
	printf("\n%d",ret);
	ret=a&4;//如何ret=true第三个开关开
	printf("\n%d",ret);
    return 0;
}

 2.位或运算

表达式:

*** 作数1| *** 作数2

当两个对象二进制数的相同位均为0时,结果数值的相应位为0,否则为1。

#include
#include
#include
int main()
{
	int a,ret;
	scanf("%d",&a);
	ret=a|1;
	printf("\n%d",ret);
	ret=a|2;
	printf("\n%d",ret);
	ret=a|4;
	printf("\n%d",ret);
	return 0;
 } 

 3.位异或运算

表达式:

*** 作数1^ *** 作数2

 当两个二进制数的相同位互不相同的时候,对应位的结果为1,否则为0。

#include
#include
#include
int main()
{
	int a,ret;
	scanf("%d",&a);
	ret=a<1;
	printf("\n%d",ret);
	ret=a<2;
	printf("\n%d",ret);
	ret=a<4;
	printf("\n%d",ret);
	return 0;
}

 3.条件表达式

求绝对值:

#include
#include
#include
int main()
{
	float x,absx;
	scanf("%f",&x);
	absx=x>0?x:-x;
	printf("|%f|=%f",x,absx);
	return 0;
}

 absx=x>0?x:-x;,当x>0时,输出x,否则输出-x。

4.逗号运算

逗号运算:所有运算中,逗号运算的优先级最低;从左到右,依次结算各个 *** 作数,并将最后一个 *** 作数n的值作为整个逗号表达式的值。

#include
int main()
{
	int a=100,b=0;
    printf("逗号运算:b=%d",b=(a=10,100));
	return 0; 
}

 b=100

5.类型转换运算

转换数值的类型

#include
int main()
{
	float a=12.34;
	printf("类型转换运算:%d",(int)a);
	return 0;
}

数值类型转化为int整数型,因此输出12。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/727791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存