C#表達(dá)式和運(yùn)算符詳細(xì)解析
類(lèi)型轉(zhuǎn)換
Convert.To類(lèi)型()
1、表達(dá)式
將變量和字面值(在使用運(yùn)算符時(shí),他們都稱(chēng)作操作數(shù))與運(yùn)算符組合起來(lái)就得到了表達(dá)式,它是計(jì)算的基本構(gòu)建
簡(jiǎn)單的操作包括所有的基本書(shū)序操作,如加減乘除;還有專(zhuān)門(mén)用于處理布爾值的邏輯運(yùn)算以及賦值運(yùn)算。
比如表達(dá)式:c=a+b
讓用戶輸入他的語(yǔ)文和數(shù)學(xué)成績(jī),計(jì)算他的總成績(jī)
using System;
namespace 表達(dá)式
{
class Program
{
static void Main(string[] args)
{
int a = 5;
int b = 10;
int c = a + b;
Console.WriteLine(c);
Console.WriteLine("請(qǐng)輸入你的語(yǔ)文成績(jī)");
double chinese = Convert.ToDouble( Console.ReadLine()); //接收用戶輸入(字符串),并轉(zhuǎn)換成Dobule類(lèi)型
Console.WriteLine("請(qǐng)輸入你的數(shù)學(xué)成績(jī)");
double math = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("您的總成績(jī)是{0},平均成績(jī)是{1}", chinese+math, (math+chinese)/2); // 字符串連接方式可以用“+”
Console.ReadKey();
}
}
}1.2 運(yùn)算符分類(lèi)
按操作數(shù)的個(gè)數(shù)
- 一元運(yùn)算符:處理一個(gè)操作數(shù)(int a=10)
- 二元運(yùn)算符:處理兩個(gè)操作數(shù) a>b
- 三元運(yùn)算符:處理三個(gè)操作數(shù) (?:
按運(yùn)算類(lèi)型:
- 數(shù)學(xué)運(yùn)算符
- 賦值運(yùn)算符
- 關(guān)系運(yùn)算符
- 布爾原酸符
- 位運(yùn)算符 (按為取反)
- 其他運(yùn)算符(is as)

- var1=var2++ :先用后加,var1等于var2,var2的值加1
- var1=++var2:先加后用(va2=)
2、數(shù)學(xué)運(yùn)算符

- var2=10
- var1=var2++ 先用后加(var1=var2=10, var2的值加一(var2=10+1))
- var1=++var2 先加后用 (var2加一(var2=10+1),var1等于var2+1)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 數(shù)學(xué)運(yùn)算符
{
class Program
{
static void Main(string[] args)
{
int a = 5;
int b = 3;
int c = a / b;
double d = a / b;
double e = 5.0;
double f = 3.0;
double g = e / f;
Console.WriteLine("c的值是{0},d的值是{1},g的值是{2}", c, d,g);
Console.ReadKey();
}
}
}結(jié)果:c的值是1,d的值是1,g的值是1.66666666666667
++/–
3、賦值運(yùn)算符

4、關(guān)系運(yùn)算符


5、布爾運(yùn)算符

注:&&/||與&/|區(qū)別:&&/||可用于對(duì)數(shù)值執(zhí)行操作,實(shí)際上,他們處理的是在儲(chǔ)存在變量中的一系列位而不是變量的值
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 布爾運(yùn)算符
{
class Program
{
static void Main(string[] args)
{
//&與運(yùn)算符,||或運(yùn)算符,!取反操作符,^異或運(yùn)算符
int a = 10;
int b = 15;
Console.WriteLine((10==a++)||(16==b--));
Console.WriteLine("a的值是{0},b的值是{1}",a,b); //輸出結(jié)果是a的值是11,b的值是15
//或運(yùn)算符||前一個(gè)操作為true時(shí),不在執(zhí)行后一個(gè)操作內(nèi)容,所是上面的結(jié)果
Console.ReadKey();
}
}
}6、位運(yùn)算符
位(bit):在計(jì)算機(jī)中存儲(chǔ)所有數(shù)據(jù)都采用二進(jìn)制,那么二進(jìn)制的為,便是我們所有的bit
1Byte=8bit 1字節(jié)=8位
1k=1024Byte
1M=1024k
1G=1024M
1T=1024G
在大俗代碼中都不適用這些運(yùn)算符,但應(yīng)知道這樣的運(yùn)算符存在。它們主要用于高度優(yōu)化的代碼,在這些代碼中,使用其他數(shù)學(xué)操作的開(kāi)銷(xiāo)太高。因此它們通常用于驅(qū)動(dòng)程序或系統(tǒng)代碼
~ 按位取反 &與運(yùn)算 |或運(yùn)算 ^異或 <<左移 >>右移
6.1 &按位與運(yùn)算


6.2 或|按位運(yùn)算

6.3 異或^按位運(yùn)算符

6.4按位取反~按位預(yù)算符

6.5 左移<<運(yùn)算符
var3=var1<<var2 var1向左移動(dòng)var2位,將所得的值付給var3

6.6右移
var3=var1>>var2 var1向右移動(dòng)var2位,將所得的值付給var3

左移一位,相當(dāng)于乘以2;
右移一位,當(dāng)當(dāng)與除以2;然后去除非整數(shù)部分
7、其他運(yùn)算符
7.1 字符連接運(yùn)算符+
將兩個(gè)字符串連接在一起組成一個(gè)新的字符串
備注:C#中“+”共三種用法
- 數(shù)學(xué)算數(shù)運(yùn)算符 var1=var2+var3
- 乘以正1 var1 =+var2 (var1=var2*(+1))
- 字符串連接 str1=“my name is” str2=“darly” str3=str1+" "+str2,則str3=“my name is darly” 7.2 is運(yùn)算符
用于動(dòng)態(tài)檢查對(duì)象的運(yùn)行時(shí)類(lèi)型是否與給定類(lèi)型兼容
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 其他運(yùn)算符
{
class Program
{
static void Main(string[] args)
{
int a = 10;
double b = 3.14;
string c = "it is a string";
bool mybool = false;
mybool = a is int;
Console.WriteLine("a is int\t"+mybool); // \t是跳轉(zhuǎn)到下一個(gè)制表符
mybool = b is double;
Console.WriteLine("b is doubule\t" + mybool);
mybool = c is string;
Console.WriteLine("c is string\t" + mybool);
Console.ReadKey();
}
}
}7.3 三元運(yùn)算符
表達(dá)式1?表達(dá)式2:表達(dá)式3 表達(dá)式1為true則結(jié)果為表達(dá)式2,否則結(jié)果為表達(dá)式3
輸出語(yǔ)句“I have 數(shù)量 pen” 當(dāng)數(shù)量為1時(shí)為pen,數(shù)量大于1時(shí)為pens
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 其他運(yùn)算符
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("請(qǐng)輸入您擁有的鋼筆數(shù)量");
int qty = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("I have {0} pen{1}", qty,qty>1?"s":"");
//Console.ReadKey();
// 比較用戶輸入數(shù)據(jù)與5的關(guān)系
Console.WriteLine("請(qǐng)您輸入要比較的數(shù)字");
int number1 = Convert.ToInt32(Console.ReadLine());
string result = number1 > 5 ? "大于等于" : "小于";
Console.WriteLine("您輸入的數(shù)字{0}5",result);
Console.ReadKey();
}
}
}8、運(yùn)算優(yōu)先級(jí)



總結(jié)練習(xí)
編程實(shí)現(xiàn)1532855秒是幾天幾小時(shí)幾分鐘幾秒
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 總結(jié)練習(xí)
{
class Program
{
static void Main(string[] args)
{
// 方法1,利用取整再取余的方式逐級(jí)獲取響應(yīng)的單位值
Console.WriteLine("請(qǐng)輸入你要計(jì)算的秒數(shù)");
int day = 24 * 60 * 60;
int hour = 60 * 60;
//int total = 1232855;
int total = Convert.ToInt32(Console.ReadLine());
int days = total / day; //計(jì)算天數(shù) 利用總秒數(shù)對(duì)一天一共多少秒取整,得到天數(shù)
int hours = (total % day) / hour; // 利用總秒數(shù)對(duì)一天一共多少秒取余數(shù),得到不夠一天的秒數(shù),然后對(duì)一小時(shí)包含秒數(shù)整,得到小時(shí)數(shù);
int minutes = (total % day % hour)/60; //同樣思路,利用兩次取余得到不足一小時(shí)的數(shù)量,再對(duì)60秒取整得到分鐘數(shù)
int minutes2 = total % 3600 / 60; //計(jì)算分鐘的方式2,總秒數(shù)對(duì)一小時(shí)取余得到不足一小時(shí)的秒數(shù)然后取整60秒得到分鐘數(shù)
int second = total % 60; //用總數(shù)對(duì)60秒取余得到不足一分鐘的秒數(shù),就是秒
Console.WriteLine("{0}天{1}小時(shí){2}分鐘{3}秒",days,hours,minutes,second);
Console.WriteLine(minutes2+"分鐘");
Console.ReadLine();
}
}
}到此這篇關(guān)于C#表達(dá)式和運(yùn)算符詳細(xì)解析的文章就介紹到這了,更多相關(guān)C#表達(dá)式和運(yùn)算符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#使用CryptoStream類(lèi)加密和解密字符串的實(shí)現(xiàn)
CryptoStream設(shè)計(jì)用于在內(nèi)容以流的形式輸出到文件時(shí)加密和解密內(nèi)容,本文主要介紹了C#使用CryptoStream類(lèi)加密和解密字符串的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
C#中DateTime的時(shí)間加減法操作小結(jié)
本文主要介紹了C#中DateTime的時(shí)間加減法操作小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
c# winform取消右上角關(guān)閉按鈕的實(shí)現(xiàn)方法
本文是對(duì)c#中winform取消右上角關(guān)閉按鈕的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下。希望對(duì)大家有所幫助2013-10-10
c#中l(wèi)ist.FindAll與for循環(huán)的性能對(duì)比總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于c#中l(wèi)ist.FindAll與for循環(huán)的性能,文中通過(guò)詳細(xì)的示例代碼給大家介紹了這兩者之間的性能,對(duì)大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10
C#中foreach原理以及模擬的實(shí)現(xiàn)
這篇文章主要介紹了C#中foreach原理以及模擬的實(shí)現(xiàn)方法,備有詳盡的注釋,便于深入理解C#原理,需要的朋友可以參考下2014-10-10
C#使用Zxing.dll組件解析二維碼的實(shí)現(xiàn)
ZXing是一個(gè)開(kāi)源的,支持多種格式的條形碼圖像處理庫(kù),本文主要介紹了C#使用Zxing.dll組件解析二維碼的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
WPF中的ValidationRule實(shí)現(xiàn)參數(shù)綁定解決方案
在WPF中,默認(rèn)情況下,DataContext是通過(guò)可視化樹(shù)來(lái)傳遞的,父元素的DataContext會(huì)自動(dòng)傳遞給其子元素,以便子元素可以訪問(wèn)父元素的數(shù)據(jù)對(duì)象,這篇文章主要介紹了WPF中的ValidationRule實(shí)現(xiàn)參數(shù)綁定解決方案,需要的朋友可以參考下2023-08-08

