官术网_书友最值得收藏!

2.2 數據進制與格式

上一節對數據類型有了簡單介紹,但數據類型的內容不止如此。本節將詳細介紹常用數據類型的特點及用法。

2.2.1 十進制、二進制與十六進制

十進制是人們生活中常用并習慣使用的數據。十進制數據以10為基數,由從0到9這10個數字構成,滿十進一。

1. 常見的數據進制

計算機中的數據只有兩位,即0和1,是二進制數據。二進制數據由0和1這兩個數字構成,十進制中的數字3被轉化成二進制表示為11,滿二進一。因此,十進制中的4等同于二進制中的100。

同樣道理,十六進制由十六個數字構成,滿十六進一。由于數字只有0到9這10個,不足以表示十六進制所需的十六個,因此需要使用大寫字母A到F來表示。

表示十六進制的數字為:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。十六進制中的F相當于十進制中的15;十六進制10相當于十進制數字16。

對于十進制數據,從低位到高位分別表示個、十、百、千等,依次表示為100、101、102、103;對于二進制數據,從低位到高位依次為20、21、22、23和24等;十六進制數據從低位到高位依次為160、161、162、163等。

因此,對于二進制數據11001來說,轉換為十進制數據為:1×1+0×2+0×4+1×8+1×16=25。十六進制數據AAA轉化為十進制為:10×1+10×16+10×256=2730。

由十進制轉化為二進制或十六進制的方法較為復雜,具體方法如下。

2. 十進制整數轉換為二進制整數

采用“除2取余,逆序排列”法。用2整除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為0時為止,然后把先得到的余數作為二進制數的低位有效位,后得到的余數作為二進制數的高位有效位,依次排列起來。

如對十進制126進行轉化,首先使用126/2=63,余0;接下來使用63/2=31,余1;31/2=15,余1;15/2=7,余1;7/2=3,余1;3/2=1,余1;1/2=0,余1。則結果為1111110,即將所有余數反過來排列,即可得到結果。

3. 十進制整數轉換為十六進制整數

采用“除16取余,逆序排列”法。與十進制轉化為二進制的方法相同,只是將除數換成了16。

如對十進制126進行轉化,首先使用126/16=7,余14;7/16=0,余7。14需要使用字母E表示,126轉化為十六進制為7E。

2.2.2 字符串類型格式化

字符串類型的輸出,除了可以使用轉義字符來規范格式以外,還可以根據指定格式進行輸出。字符串格式的規范性可使用格式標識符、使用Console.WriteLine()方法、使用string.Format()方法和使用“@”符號等。

1. 使用Console.WriteLine()方法及格式標識符

為了規范輸出數據,Console.WriteLine()方法可直接對字符串的格式進行規范,其中一種規范格式如下所示:

Console.WriteLine(“{0} {1}”,參數1,參數2…)

上述代碼中,{0}代表第一個參數,{1}代表第二個參數。Console.WriteLine()方法可包含多個參數,使用大括號和數字來表示。其內部數字從0開始,相同的編號只能代表相同的參數。如輸出字符串“我的小妹名叫秋秋,今年7歲”,將“秋秋”和“7歲”作為參數,可使用如下語句:

Console.WriteLine("我的小妹名叫{0},今年{1}","秋秋","7歲");

在C#中提供了格式標識符號,用來規范字符串的輸出格式。常見的格式標識符號如表2-4所示。

表2-4 格式標識符號及其含義

如分別使用逗號分隔符號和精度格式,輸出同一個數據56789,使用語句如下所示:

Console.WriteLine("{0:N1}", 56789);
Console.WriteLine("{0:N2}", 56789);
Console.WriteLine("{0:N3}", 56789);
Console.WriteLine("{0:F1}", 56789);
Console.WriteLine("{0:F2}", 56789);

運行上述語句,其效果如圖2-2所示。若Console.WriteLine()方法中有兩個參數,都需要雙精度表示,則可以使用“Console.WriteLine("{0:F2}{1:F2}", 56789,1234);”語句。

在C#中,有Console.Write()方法,其用法與Console.WriteLine()方法只有一點不同:Console.WriteLine()方法在輸出的同時,在輸出內容的末尾添加換行符,而Console.Write()方法只輸出指定的內容,不對文字進行換行。

如圖2-2中的輸出,使用Console.Write()方法來替換Console.WriteLine()方法,結果如圖2-3所示。

圖2-2 字符串格式標識的使用

圖2-3 Console.Write()方法顯示效果

2. string.Format()方法

在C#中,有不需要輸出而只指定字符串格式的方法:string.Format()方法。該方法根據指定的格式,返回一個格式字符串,其格式的使用與Console.WriteLine()方法一樣。如同樣是“我的小妹名叫秋秋,今年7歲”字樣,使用string.Format()方法語句如下:

string.Format ("我的小妹名叫{0},今年{1}","秋秋","7歲");

輸出該字符串,語句如下:

Console.WriteLine(string.Format ("我的小妹名叫{0},今年{1}","秋秋","7歲"));

該語句與下述語句的輸出結果一樣。

Console.WriteLine("我的小妹名叫{0},今年{1}","秋秋","7歲");

3. @的使用

在C#中,一些特殊符號被賦予了特殊的用法,但字符串中的特殊符號并不希望被用作特殊的用法,而是希望被作為普通字符輸出,此時可以使用“@”符號,將字符串原樣輸出。

如“\n”可以作為換行符,在字符串中間分隔字符串,分別使用不含@的輸出和含有@的輸出,查看運行效果,使用代碼如下所示:

Console.WriteLine("我的小妹名叫秋秋,\n今年7歲");
Console.WriteLine(@"我的小妹名叫秋秋,\n今年7歲");

運行上述代碼,其結果如圖2-4所示。第一句代碼沒有使用@符號,語句中的轉義字符\n被作為換行符使用;而第二句,在字符串的前面使用@符號,@后的字符串被原樣輸出,如圖2-4所示。

圖2-4 字符串的原樣輸出

主站蜘蛛池模板: 新余市| 怀化市| 福清市| 阜平县| 宝丰县| 武定县| 维西| 封丘县| 凤冈县| 彰化市| 阜宁县| 延吉市| 曲松县| 台中市| 阿拉尔市| 辉南县| 鞍山市| 五原县| 昔阳县| 郓城县| 太原市| 隆尧县| 叶城县| 从江县| 炉霍县| 石首市| 方正县| 怀安县| 罗江县| 武城县| 赤城县| 大英县| 兴隆县| 招远市| 涞水县| 庐江县| 富阳市| 湘乡市| 高碑店市| 南丰县| 波密县|