C#學習日記08---數據類型 之 字符類型

數值類型 之 字符類型:

     計算機處理的信息中除了數字以外,主要就是字符了,字符包括數字字符、英文字符、表達式符號、等等;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);

        }
    }
}

運行一下 :

所以 以上的賦值 與 char c = '2'   char d = '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");
                }
    }
}

結果是這樣:


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

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


和C/C++一樣,在C#中仍然存在着轉義符,用來在程序中代指特殊的控制字符……

轉義符

轉義符

字符名

\'

單引號
\" 雙引號
\\ 反斜槓
\0 空字符
\b 退格
\f 換頁
\n 換行
\r 回車(不換行)
\t 水平製表
\v

垂直製表

\a 響鈴報警提示音

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


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

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











發佈了39 篇原創文章 · 獲贊 7 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章