一、前言
本章節主要是探索 C# 的基本類型,一直以來我本人常用都是 int 、double、bool、decimal、string 這五個類型,其對其它類型沒有認真了解過。只是以前在學習的時候背了些,如 int 占幾個字節呀,現在都模糊了。我現在想成為一名 C# 的架構師,因此關於 C# 的類型這塊,我得自己花時間去了解,去實踐。以下就是我實踐的結果,對於實踐的結果如果不正確的,歡迎在下方評論,我會第一時間查缺補漏。先謝謝大家!!!
學習路線參考:滑溜溜的小浪騷
使用這位大佬的架構師之路,成就我自己的架構師之路。在此先謝過這位大佬!!!
二、知識儲備
1、二進制:英文名(binary),在數學和數字電路中值以 2 位基數的計數系統,以 2 為基數代表系統的是二進位制的。通過用 0 和 1 來表示。
2、比特:英文名(BIT,Binary digit )計算機專業術語,是信息單位,是英文 BIT 英譯而來。在二進制系統中,每個 0 或 1 就是一個位(bit),位(bit)是數據存儲的最小單位。其中 8 bit 就稱為 一個字節(Byte)。
那么平時我們說電腦系統是:32位 或 64 位的系統,其實就是指計算機的 CPU 一次最多能處理 32 位數據 或 64 位數據。
3、無符號整數:無符號數是指整個機器字長的全部二進制位均表示數值位。相當數的絕對值。
4、帶符號整數:有符號數可以表示為正整數、0 和 負整數值。其二進制編碼包含 符號位 和 真值域
8位二進制所能表示的無符號整數范圍為 0 ~255 ,用二進制表示為( 00000000 ~ 11111111 ) ;8 位二進制所能表示的帶符號位的整數范圍為 -128~127,二進制表示為( 0 0000000 ~ 1 1111111 )其中第一位的 0 (正數)和 1 (負數)表示符號位。
三、基本類型認識
1、sbyte 類型:表示 8 位(bit)有符號整數,根據我們先了解的知識儲備,8 位有符號的整數取值就是 -128 ~ 127 之間。
/// <summary> /// 使用本程序來了解 C# 的基礎類型 /// </summary> namespace BaseTypeStudyyle { using System; class Program { static void Main(string[] args) { //1、sbyte //SByte:表示 8 位有符號整數,取值范圍 -127~128 sbyte number =127; //錯誤提示:-129 無法轉換為 sbtye //number = -129; //錯誤提示:130 無法轉換為 sbtye //number = 130; int i = -130; //錯誤提示:無法將 int 隱式轉換為 sbtye (是否強制轉換?)。 //number = i; number = (sbyte)i; Console.WriteLine("int i ={0} ,sbyte number = {1}",i,number); } } }
輸出結果:
那么 int = -130 ,為什么會是 sbyte=126 呢?因為數據溢出了就會改變符號,符號位 0 變 1,1 變 0。
2、btye 類型:表示 8 位(bit)無符號整數,8 位無符號的整數取值就是 0 ~ 255 之間。
/// <summary> /// 使用本程序來了解 C# 的基礎類型 /// </summary> namespace BaseTypeStudyyle { using System; class Program { static void Main(string[] args) { //2、sbyte //Byte:表示 8 位有符號整數,取值范圍 0~255 byte number =255; int i = 256; number = (byte)i; Console.WriteLine("int i ={0} ,byte number = {1}",i,number); i = 257; number = (byte)i; Console.WriteLine("int i ={0} ,byte number = {1}", i, number); i= -1; number = (byte)i; Console.WriteLine("int i ={0} ,byte number = {1}", i, number); i = -2; number = (byte)i; Console.WriteLine("int i ={0} ,byte number = {1}", i, number); } } }
輸出結果:
3、short 類型:表示 16位(bit)有符號整數,8 位有符號的整數取值就是 -32768 ~ 32767 之間。
/// <summary> /// 使用本程序來了解 C# 的基礎類型 /// </summary> namespace BaseTypeStudyyle { using System; class Program { static void Main(string[] args) { short min = short.MinValue; ; short max = short.MaxValue; Console.WriteLine("short max ={0} ,short min = {1}", max, min); } } }
4、ushort 類型:表示 16位(bit)無符號整數,8 位無符號的整數取值就是 0 ~ 65535之間。
/// <summary> /// 使用本程序來了解 C# 的基礎類型 /// </summary> namespace BaseTypeStudyyle { using System; class Program { static void Main(string[] args) { ushort min = ushort.MinValue; ; ushort max = ushort.MaxValue; Console.WriteLine("ushort max ={0} ,ushort min = {1}", max, min); } } }
5、int 類型:表示 32位(bit)有符號整數,32 位有符號的整數取值就是 -2147483648 ~ 2147483647之間。
/// <summary> /// 使用本程序來了解 C# 的基礎類型 /// </summary> namespace BaseTypeStudyyle { using System; class Program { static void Main(string[] args) { int min = int.MinValue; ; int max = int.MaxValue; Console.WriteLine("int max ={0} ,int min = {1}", max, min); } } }
6、uint 類型:表示 32位(bit)無符號整數,32 位無符號的整數取值就是 0 ~ 4294967295 之間。
/// <summary> /// 使用本程序來了解 C# 的基礎類型 /// </summary> namespace BaseTypeStudyyle { using System; class Program { static void Main(string[] args) { uint min = uint.MinValue; ; uint max = uint.MaxValue; Console.WriteLine("uint max ={0} ,uint min = {1}", max, min); } } }
7、long 類型:表示 64位(bit)有符號整樹。
8、ulong 類型:表示 64位(bit)無符號整數。
9、char 類型:
10、float 類型:
11、double 類型:
12 、bool 類型:
13:decimal 類型:
14:string 類型:
15、object 類型
16:dynamic 類型: