c# 基礎類型探索


一、前言

  本章節主要是探索 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 類型:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM