C语言运算符

算术运算符

计算机的核心任务简单描述就是读取输入的数据,然后进行相应的计算后输出。

C语言提供了丰富的运算符来实现数据的运算,常用的运算符有算术运算符、赋值运算符、自增自减运算符、逗号运算符、三目运算符、关系运算符和位运算符。

各个运算符都有优先级和结合性,所谓的优先级指的就是在多种运算符参与运算时先执行哪种运算,而结合性指的是只有在优先级相等时表达式运算的方向,也就是是从右向左,还是从左向右依次计算。

多个运算符和操作数在一起构成了表达式。

所谓的算术运算符就是数学意义上的加减乘除,然后在某些业务计算时还可能会用到求余数,C语言提供了取模运算符(%)来实现求余数。

优先级:C语言的算术运算符是先执行乘除运算,后执行加减运算。

结合性:如果是优先级相等的情况下是从左向右开始运算。

如果想更改运算符的优先级,可以通过使用()来实现,如下应用案例所示:

#include <stdio.h>
#include <stdlib.h>
/*
    算术运算符的案例
    @author tony ittimeline@163.com
    @date 2017/11/26 13:26
    @website www.ittimeline.net
*/
void operator_operator_num_expression() {

    int num = 3 + 5; //+是运算符  3,5是操作符

    int sum = 3 + (2 * 5);//表达式

    int value = (1 + 2) * 3; //先乘除后加减,通过()提高优先级

    value = ((1 + 2 + 3)*(9 - 5)) / (12 - 8); //()可以嵌套

    int result = 1 + 2 - 3 + 4 - 5; //结合性 优先级相等的情况下 从左到右执行运算

    //运算符不能相邻
    //result = 1 + *3;

    //乘号不能省略
    //result = 6num;

    system("pause");
}

只有整数才能求模运算,求模运算结果的符号和被除数相同,如下程序案例所示:

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

/*
算术 操作符(取模)
    @author tony ittimeline@163.com
    @date 2017/11/26 13:28
    @website www.ittimeline.net
*/
void alg_operator() {
    int result = 1 + 3;//4
    result = -3;//-3
    result = 5 / 2; //2
    double val = 3.5 * 2;

    //整数才能取模
    int remainder = 5 % 2;
    remainder = -5 % 2; // -(5%2)  取模的结果的符号和被除数一样

    int tmp = -5 % 3;//-2 被除数为正,取模结果为正,被除数为负,取模结果为负
    tmp = -3 % 5; //-3
    tmp = 5 % -3; //2
    tmp = 3 % -5; //3 
    system("pause");
}

求模运算符可以实现数据的反转,如下应用案例所示:

#include <stdio.h>
#include <stdlib.h>
/*
    使用取模运算符实现整数反转
    @author tony ittimeline@163.com
    @date 2017/11/26 13:32
    @website www.ittimeline.net
*/
void reverse_num() {
    int num = 87;

    int unit = num % 10;
    int  tens_place = num / 10;

    int reverse_val = unit * 10 + tens_place;

    printf("%d反转之后的结果是%d\n",num,reverse_val);

    system("pause");

}

在使用算术运算符执行数学运算时,需要注意参与运算的数据类型,运算结果的类型是参与运算的数据中占据内存空间最大的类型。

也就意味着数据类型在运算时会执行自动类型转换,例如两个整数执行算术运算,结果一定是整数。浮点数和整数执行算术运算,结果一定是浮点数。

取模运算常常用于大数据分割,游戏中修改数据的场景。

使用算术运算符实现5位数的整数反转

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdilib.h>
/*
使用取模运算符实现5位整数反转
@author tony ittimeline@163.com
@date 2017/11/29 23:26
@website www.ittimeline.net
*/
void reverse_num_extends() {

    int num = 0;

    printf("请输入你需要反转的五位正整数\n");

    scanf("%d",&num);

    printf("你输入需要反转的正整数是%d\n",num);
/*
实现思路,以12345为例
12345
个位: 12345%10=5;
十位: 12345%100=45/10=4
百位: 12345/100=123%10=3
千位: 12345/1000=12%10=2
万位: 12345/10000=1
*/
    int unit = num % 10;
    int  tens_place = num % 100 / 10;
    int hund
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值