算术运算符
(+ 加 -减 * 乘 / 除 % 取模 ++ 自增 – 自减)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 运算符和表达式
{
class Program
{
static void Main(string[] args)
{
// 1+2 = 3
//先计算赋值号的右侧 将右侧的计算结果保存在变量中
int ret = 12 + 15;
Console.WriteLine(ret);
ret = 56 - 32;
Console.WriteLine(ret);
ret = 9 / 3;
Console.WriteLine(ret);
//整数除以整数 如果不能整除 计算结果将会是两个整相除的商
ret = 18 / 4;
Console.WriteLine(ret);
//下面的结果也是正确,稍后讲解
//取整操作 得到的是商
float retFloat = 18 / 4;
Console.WriteLine(retFloat);
Console.WriteLine("retFloat={0}", retFloat);
double retdouble = 12.56 / 4;
Console.WriteLine("retdouble={0}", retdouble);
/*
* 除法总结:
* 整数/整数 得到整数 如果不整除 那么得到的是商
* float类型的浮点数/整数 得到float类型的浮点数
* double类型的浮点数/整数 得到double 类型的浮点数
*
*
*/
ret = 3 * 9;
Console.WriteLine(ret);
//取模操作 也就是得到余数
ret = 18 % 4;
Console.WriteLine(ret);
Console.WriteLine("-----------------------------");
int num1 = 10;
//num1++; // 同 num1 = num1 + 1;
num1 = num1 + 1;
Console.WriteLine(num1);
Console.WriteLine("*******************************");
int num2 = 10;
//++num2; // num2 = num2 + 1;
num2 = num2 + 1;
Console.WriteLine(num2);
Console.WriteLine("****num3****");
int num3 = 10;
//先打印num3的值 再进行加法运算
Console.WriteLine(num3++); // 10
Console.WriteLine("num3={0}",num3); //11
int num4 = 10;
//先进行加法运算 然后再打印num4的值
Console.WriteLine(++num4);
Console.WriteLine("++++++++++++++++++++++++++++++++");
int num5 = 10;
//下面的代码等同于 Console.WriteLine(num5++);
Console.WriteLine(num5); //10
num5 = num5 + 1;
int num6 = 10;
//下面的代码等同于 Console.WriteLine(++num6);
num6 = num6 + 1;
Console.WriteLine(num6);
/*
* 总结 :i++ 是先使用i 的值 然后在进行i = i+1; 的运算
*
* ++i 是先进行i=i+1运算 在使用i的值
*/
}
}
}
赋值运算符
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 赋值运算
{
class Program
{
static void Main(string[] args)
{
int num1 = 100;
int num2 = 200;
int ret = num1 + num2;
Console.WriteLine(ret);
num1 += num2; //num1 = num1 + num2;
Console.WriteLine();
// 1+ 2 + 3 + 4 +5
int result = 0;
result += 1; // result = result + 1;
Console.WriteLine(result);
result += 2; // result = result + 2;
Console.WriteLine(result);
result += 3; // result = result + 3;
Console.WriteLine(result);
result += 4; // result = result + 4;
Console.WriteLine(result);
result += 5; // result = result + 5;
Console.WriteLine(result);
int num3 = 5;
int num4 = 6;
num3 *= num4; //num3 = num3 * num4;
Console.WriteLine(num3);
num3 = 10;
num4 = 3;
Console.WriteLine(num3%=num4);
}
}
}
位运算
Console.WriteLine(6&11);
Console.WriteLine(6|11);
Console.WriteLine(~6);
Console.WriteLine(6^11);
Console.WriteLine(13^6);
Console.WriteLine(13^11);
//异或交换
int num1 = 6;
int num2 = 11;
//13 6 11
num1 = num1 ^ num2;
//6 13 11
num2 = num1 ^ num2;
//11 13 6
num1 = num1 ^ num2;
/*
* 位运算 总结:
* 按位与:全1才为1
* 按位或:全0才是0
* 按位非:-(数字+1)
* 按位异或:相同为0 不同为1
*
*
*/
bool ret1 = 4 <= 5;
Console.WriteLine(ret1);
算术运算符优先级
算术运算符有很多,我们只需要记住复制号=的优先级最低 小括号的优先级最高()即可,在模棱两可的时候,可以通过加()来避免代码发生歧义