首頁  >  文章  >  後端開發  >  C#學習日記08---資料類型 之 字元類型

C#學習日記08---資料類型 之 字元類型

黄舟
黄舟原創
2017-01-20 13:34:081562瀏覽

數值類型之字符類型:

     計算機處理的資訊中除了數字以外,主要就是字符了,字符包括數字字符、英文字符、表達式符號、等等;C#提供的字符類型按照國際上的公認標準,按照國際上的公認標準,採用Unicode字元集,一個標準的Unicode字元長度為16位,用它可以表示世界上的許多語言。 C# 中給字符變數賦值與C/C++類似:

     Char ch = 'H';  有時候當我們錄入人的姓名的時候也用的Char 型,比如之前的日記03當中我就用char sex;來錄入我的性別,這麼說來一個漢字也是一個字符了? ?是的,一個漢字佔2個字節,1個字節是8位,換算下,一個漢字剛好就16位了,因此算一個字符;所以  char sex = '男' 是合法編譯。

   另外,我們還可以直接透過十六進位轉義或Unicode表示法給字元變數賦值,例如:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
  
namespace Example  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            char c = '\x0032';  //\x 是16进制转义符号 此时的32是16进制下的32  
            char d = '\u0032';  //\u 下的32代表Unicode的一个编码  
            Console.WriteLine("c = {0}\td = {1}",c,d);  
  
        }  
    }  
}

運行一下:

C#學習日記08---資料類型 之 字元類型

所以以上的賦值與char = '2'是一樣的;

   本著一顆勇於探索的心​​,我對上面的程式碼又進行了一番探索。 u0032表示的是在Unicode下編碼為0032的字符,x0032表示的是16進制下的0032,對比發現Unicode的編碼就是16進制下的數值,我試著將代碼改為如下:

   char c = 'x0033';

   char d = 'u0034';

我猜想結果會是  c=3  d=4;  運作結果正是這樣,以上才成立。

   本著胡思亂想的精神,我又想起了學習C的時候用的ASCII碼值,會不會ASCLII 碼值與Unicode碼值是一樣的呢?我找到了那本C語言教材,查詢到2的ASCII十進制碼值是50不是32,,由於以上的猜想成立32是16進制下的32我把它轉換為10進制是多少呢? ? ? (這可就考到我了,當初老師講進制轉換時,我……唉!不說了,“書到用時方恨少啊!” ),不過我們可以用C#寫一個進制轉化的程序來計算下,代碼如下:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
  
namespace Example  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
              
            Console.Write("请输入一个十六进制数:");  
  
            string x = Console.ReadLine();  
            Console.WriteLine("十六进制 {0} 的十进制数表示为:{1}", x, Convert.ToInt32(x, 16)); // Convert.ToInt32(x, 16) 将16进制中x转化为10进制,
            int类型就是十进制;  
            Console.WriteLine("十进制 50 的十六进制数表示为:{0}", Convert.ToString(50,16));//Convert.TonString(50,16)进制转换  或者 可用 int a = 50;  
            a.ToString("X");  
                }  
    }  
}

結果是這樣:

C#學習日記08---資料類型 之 字元類型

果然十六進制下的ASCII碼值與Unicode的字元碼值是相等的,經過查閱資料可以知道:

  是英文及一些特殊符號(製表符等),
    Unicode不僅有英文和特殊符號,還有日文、韓文、中文…
    現在一般用Unicode(這也是為什麼日記04C#支援用中文命名變數了的原因了)


和C/C++一樣,在C#中仍然存在著轉義符,用來在程式中代指特殊的控製字元…

C#學習日記08---資料類型 之 字元類型

可能會不知道a 舉個例子  Console.WriteLine("aa");  會發出2聲「嘀」的聲音,你試試… 


 字符類型的介紹就在這裡了,最後本著消滅所有疑問的目的,我想搞清楚如何用C/C++寫進位轉換,看來還得去請教老師了。

   (如果有錯誤的地方望各位大神指點,定會感激不盡!!!!)

以上就是C#學習日記08---資料類型之字符類型的內容,更多相關內容請關注PHP中文網(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn