操作符的相关介绍

  1. 算术操作符
    取余操作符(%)的两个操作符必须为整数,返回整除后的余数
  2. 移位(二进制位)操作符
    左移操作符 <<
    右移操作符 >>
    右移操作符的移位规则:
    {
    (1)、逻辑右移:左边用0填充,右边丢弃
    (2)、算术右移:左边用原值的符号位填充,右边丢弃
    }
    移位操作符有求平均的功能
#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a = 0;
	int b = 0;
	float ave = 0.0;
	scanf("%d%d", &a, &b);
	ave = (a + b) >> 1;
	printf("ave = %lf", ave);
	system("pause");
	return 0;
}

  1. 位操作符
    & 按位与
    | 按位或
    ^ 按位异或
    & 按位与操作符结合移位操作符可以实现计算一个数的二进制位中有多少个1
//方法一
#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int count_one_bits(unsigned int m)
{
	int count = 0;
	int i = 0;
	for (i = 0; i < 32; i++)
	{
		if (((m >> i) & 1) == 1)
		{
			count++;
		}
	}
	return count;
}
int main()
{
	int m = 0;
	scanf("%d", &m);
	int ret = 0;
	ret = count_one_bits(m);
	printf("%d\n", ret);

//方法二

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int count_one_bits(unsigned int m)
{
	int count = 0;
	while (m)
	{
		if (m % 2 == 1)
		{
			count++;
			m = m / 2;
		}
	}
	return count;
}
int main()
{
	int num = 0;
	int ret = 0;
	scanf("%d", &num);
	ret = count_one_bits(num);
	printf("%d", ret);
	system("pause");
	return 0;
}

^ 按位异或可以在不创建临时变量的情况下交换两个数的内容

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int m = 0;
	int n = 0;
	scanf("%d%d", &m, &n); 
	m = m^n;
	n = m^n;
	m = m^n;
	printf("m = %d  n = %d\n", m, n);
	system("pause");
	return 0;
}
  1. 赋值操作符
    +=
    -=
    *=
    /=
    %=
    >>=
    <<=
    &=
    |=
    ^=

  2. 单目操作符
    ! 逻辑反操作符
    -
    +

    &
    sizeof操作数的类型长度(以字节为单位)
    ~ 对一个数的二进制按位取反

    ++
    (类型)强制类型转化

    部分单目操作符可以简化表达式

x++;
x--;

自增自减

int main()
{
	int a = 2;
	int x = 0;
	int y = 0;
	x = ++a;
	y = --a;//a先自增(自减),再将a的值赋给x(或y)
	x = a++;
	y = a--;//先将a的值赋给x(或y),a再自增(自减)
	return 0;
}
  1. 关系操作符
    >
    >=
    <
    <=
    !=
    ==

  2. 逻辑操作符
    &&逻辑与
    ||逻辑或

  3. 条件操作符
    exp1 ? exp2 : exp3
    //上述表达式的意思是exp1为真,则执行 exp2, 否则执行 exp3

  4. 逗号表达式

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a = 1;
	int b = 2;
	int c = (a > b, a = b + 10, a, b = a + 1);
	printf("%d", c);
	system("pause");
	return 0;
}
//计算时,从左往右执行,表达式的结果是最后一个表达式的结果,虽然表达式的结果是最后一个表达式的结果,但是它受前面表达式的影响

11.下标引、函数调用和结构成员
[ ]下标引用操作符
( )函数调用操作符
访问一个结构的成员
. 结构体.成员名
-> 结构体指针->成员名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值