一运算符
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。 C# 有丰富的内置运算符,分类如下:
1. 算术运算符
下表显示了 C# 支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则:
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 把两个操作数相加 | A + B 将得到 30 |
| - | 从第一个操作数中减去第二个操作数 | A - B 将得到 -10 |
| * | 把两个操作数相乘 | A * B 将得到 200 |
| / | 分子除以分母 | B / A 将得到 2 |
| % | 取模运算符,整除后的余数 | B % A 将得到 0 |
| ++ | 自增运算符,整数值增加 1 | A++ 将得到 11 |
| - - | 自减运算符,整数值减少 1 | A-- 将得到 9 |
注:a++ 先赋值后运算;++a先运算后赋值;a- -先赋值后运算;- -a先运算后赋值;
计算机进行运算是按照补码进行运算的
面试案例:
int i=2147483647 i 的补码是:0111 1111 1111 1111 1111 1111 1111 1111
i 的补码+1 是:1000 0000 0000 0000 0000 0000 0000 0000
所以 i+1 得到的结果是-2147483648
2. 关系运算符
下表显示了 C# 支持的所有关系运算符。假设变量 A 的值为 10,变量 B 的值为 20,则:
| 运算符 | 描述 | 实例 |
|---|---|---|
| == | 检查两个操作数的值是否相等,如果相等则条件为真。 | (A == B) 不为真。 |
| != | 检查两个操作数的值是否相等,如果不相等则条件为 真。 | (A != B) 为真。 |
| > | 检查左操作数的值是否大于右操作数的值,如果是则条 件为真。 | (A > B) 不为真。 |
| < | 检查左操作数的值是否小于右操作数的值,如果是则条 件为真。 | (A < B) 为真。 |
| >= | 检查左操作数的值是否大于或等于右操作数的值,如果 是则条件为真。 | (A >= B) 不为真。 |
| <= | 检查左操作数的值是否小于或等于右操作数的值,如果 是则条件为真。 | (A <= B) 为真。 |
3. 逻辑运算符
下表显示了 C# 支持的所有逻辑运算符。假设变量 A 为布尔值 true,变量 B 为布尔值 false,则:
| 运算符 | 描述 | 实例 |
|---|---|---|
| && | 称为逻辑与运算符。如果两个操作数都非零,则条件为 真。 | (A && B) 为假。 |
| ¦¦ | 称为逻辑或运算符。如果两个操作数中有任意一个非 零,则条件为真。 | (A ¦¦B) 为真. |
| ! | 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果 条件为真则逻辑非运算符将使其为假。 | !(A && B) 为真。 |
4.赋值运算符
下表列出了 C# 支持的赋值运算符:
| 运算符 | 描述 | 实例 |
|---|---|---|
| = | 简单的赋值运算符,把右边操作数的值赋 给左边操作数 | C = A + B 将把 A + B 的值 赋给 C |
| += | 加且赋值运算符,把右边操作数加上左边 操作数的结果赋值给左边操作数 | C += A 相当于 C = C + A |
| -= | 减且赋值运算符,把左边操作数减去右边 操作数的结果赋值给左边操作数 | C -= A 相当于 C = C - A |
| *= | 乘且赋值运算符,把右边操作数乘以左边 操作数的结果赋值给左边操作数 | C *= A 相当于 C = C * A |
| /= | 除且赋值运算符,把左边操作数除以右边 操作数的结果赋值给左边操作数 | C /= A 相当于 C = C / A |
| %= | 求模且赋值运算符,求两个操作数的模赋 值给左边操作数 | C %= A 相当于 C = C % A |
| <<= | 左移且赋值运算符 | C <<= 2 等同于 C = C << 2 |
| >>= | 右移且赋值运算符 | C >>= 2 等同于 C = C >> 2 |
| &= | 按位与且赋值运算符 | C &= 2 等同于 C = C & 2 |
| ^= | 按位异或且赋值运算符 | C ^= 2 等同于 C = C ^ 2 |
| ¦= | 按位或且赋值运算符 C | = 2 等同于 C = C |
二.实例
1.运算符简单计算判断
代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace _01运算符练习
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
int i = int.Parse(textBox1.Text);
int k = i++;
label3.Text = k.ToString();
label4.Text = i.ToString();
}
private void button2_Click(object sender, EventArgs e)
{
int i = int.Parse(textBox1.Text);
int j = ++i;
label5.Text = j.ToString();
label6.Text = i.ToString();
}
private void button3_Click(object sender, EventArgs e)
{
int i = int.Parse(textBox1.Text);
int f = int.Parse(textBox2.Text);
bool b = (i == f);
label7.Text = Convert.ToInt32(b).ToString();
}
private void button4_Click(object sender, EventArgs e)
{
int i = int.Parse(textBox1.Text);
int f = int.Parse(textBox2.Text);
bool d = (i != f);
label8.Text = Convert.ToInt32(d).ToString();
}
}
}
浙公网安备 33010602011771号