C语言操作符

本文详细介绍了C语言中的各种操作符,包括算术、移位、位、赋值、单目、关系、逻辑、条件、逗号表达式,以及下标引用、函数调用和结构成员操作。此外,还讲解了隐式类型转换中的整型提升和算术转换,以及操作符的属性和求值规则。
摘要由CSDN通过智能技术生成

目录

操作符分类

一、算术操作符

二、移位操作符

三、位操作符

四、赋值操作符

五、单目操作符

六、关系操作符

七、逻辑操作符

八、条件操作符

九、逗号表达式

十、下标引用、函数调用和结构成员

隐式类型转换

一、整型提升

二、算术转换

操作符的属性


操作符分类

一、算术操作符

+ - * / %

/:两个整数相除结果取整,例如3/2 = 1, 要想得到小数相除的两个数至少要有一个是小数

%:取模操作符的两个操作数必须是整数

二、移位操作符

<<:左移操作符,将操作数的二进制位向左移动一位,左边的值丢弃,右端补0

>>:右移操作符,将操作数的二进制位向右移动一位,有两种移动规则

1.算术右移:右边的值丢弃,左边补上原来的符号位,常用算术右移

2.逻辑右移:右边的值丢弃,左边补0

三、位操作符

&:按位与,按操作数的二进制位相与,都为真则为真

|:按位或,按操作数的二进制位相或,有一个为真则为真

^:按位异或,按操作数的二进制位异或,真假互异才为真

位操作符操作的必须为整数

位操作符可以实现一些比较神奇的功能:

1.计算整数对应二进制中1的个数

//计算整数对应二进制中1的个数
int main()
{
	int a = 0;//要计算的整数
	int i = 0;//对位数计数
	int b = 0;//表示这一位上是0还是1
	int ret = 0;//存储结果
	scanf("%d", &a);
	for (i = 0; i < 32; i++)
	{
		b = a & 1;
		a = a >> 1;
		ret += b;
	}
	printf("%d\n", ret);
	return 0;
}

2.改变二进制数中某一位的值

//将倒数第5个二进制位由0变为1
int main()
{
	int a = 10;
	//a的二进制:00000000000000000000000000001010
	a = a | (1 << 4);
	//00000000000000000000000000001010
	//00000000000000000000000000010000
	//相或
	//00000000000000000000000000011010
	printf("%d\n", a);//输出26
	return 0;
}
//将倒数第5个二进制位由0变为1
i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值