C#中BitConverter.ToUInt16()和BitConverter.ToString()的簡單使用
阿新 • • 發佈:2019-02-19
下面是msdn中的一個例子,在我剛看到這裡例子時,該例子有三點是我可以學到的。
第一:排列格式。如:定義一個常量變數const string a="{0,11}{1,10},{2,7}"; 這樣一個格式用來排列三個變數的位置,第一個變數佔5個位置,第二個變數佔8個位置,第三個變數佔10個位置。中英文都算一個位置。比如在控制檯上輸出 Console.WriteLine(a,"以後想找什麼當另外一半","找個又帥又有車的","那買副象棋吧"); 下面是這個測試的截圖
如果,定義所佔的位置少於要輸入的字元,會自動增加,而不是截斷。 第二:BitConverter.ToUInt16()的用法,是把兩個位元組轉換為無符號整數,如:205 56 這兩個位元組的16進位制是 CD 38 那麼轉為無符號整數 應該倒過來排 即 38CD 這個數轉為無符號十進位制整數就是 14541 第三:BitConverter.ToString()的用法,這個就是把位元組或位元組陣列轉換為十六進位制或十六進位制的字串形式,中間用“-”連線
下面是這個例子的完整程式碼: using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace BitConverter資料轉換
{
class Program
{
//排列格式,第一個變數佔五個位置,第二個變數佔17個位置,第三個變數佔10個位置
const string formatter = "{0,5}{1,17}{2,10}"; // Convert two byte array elements to a ushort and display it.
public static void BAToUInt16(byte[] bytes, int index)
{
//BitConverter用於基礎資料跟位元組陣列相互轉換
//BitConverter.ToUInt16()方法將位元組陣列指定位置起的兩個位元組轉換為無符號整數
ushort value = BitConverter.ToUInt16(bytes, index);
//BitConverter.ToString()位元組陣列轉換為十六進位制的字串形式
Console.WriteLine(formatter, index,
BitConverter.ToString(bytes, index, 2), value);
} static void Main(string[] args)
{
byte[] byteArray = {
15, 0, 0, 255, 3, 16, 39, 255, 255, 127 };
Console.WriteLine(
"This example of the BitConverter.ToUInt16( byte[ ], " +
"int ) \nmethod generates the following output. It " +
"converts elements \nof a byte array to ushort values.\n");
Console.WriteLine("initial byte array");
Console.WriteLine("------------------");
Console.WriteLine(BitConverter.ToString(byteArray));
Console.WriteLine();
Console.WriteLine(formatter, "index", "array elements",
"ushort");
Console.WriteLine(formatter, "-----", "--------------",
"------"); // Convert byte array elements to ushort values.
BAToUInt16(byteArray, 1);
BAToUInt16(byteArray, 0);
BAToUInt16(byteArray, 3);
BAToUInt16(byteArray, 5);
BAToUInt16(byteArray, 8);
BAToUInt16(byteArray, 7);
Console.ReadKey(); }
}
}
如果,定義所佔的位置少於要輸入的字元,會自動增加,而不是截斷。 第二:BitConverter.ToUInt16()的用法,是把兩個位元組轉換為無符號整數,如:205 56 這兩個位元組的16進位制是 CD 38 那麼轉為無符號整數 應該倒過來排 即 38CD 這個數轉為無符號十進位制整數就是 14541 第三:BitConverter.ToString()的用法,這個就是把位元組或位元組陣列轉換為十六進位制或十六進位制的字串形式,中間用“-”連線
下面是這個例子的完整程式碼: using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace BitConverter資料轉換
{
class Program
{
//排列格式,第一個變數佔五個位置,第二個變數佔17個位置,第三個變數佔10個位置
const string formatter = "{0,5}{1,17}{2,10}"; // Convert two byte array elements to a ushort and display it.
public static void BAToUInt16(byte[] bytes, int index)
{
//BitConverter用於基礎資料跟位元組陣列相互轉換
//BitConverter.ToUInt16()方法將位元組陣列指定位置起的兩個位元組轉換為無符號整數
ushort value = BitConverter.ToUInt16(bytes, index);
Console.WriteLine(formatter, index,
BitConverter.ToString(bytes, index, 2), value);
} static void Main(string[] args)
{
byte[] byteArray = {
15, 0, 0, 255, 3, 16, 39, 255, 255, 127 };
"This example of the BitConverter.ToUInt16( byte[ ], " +
"int ) \nmethod generates the following output. It " +
"converts elements \nof a byte array to ushort values.\n");
Console.WriteLine("initial byte array");
Console.WriteLine("------------------");
Console.WriteLine(BitConverter.ToString(byteArray));
Console.WriteLine();
Console.WriteLine(formatter, "index", "array elements",
"ushort");
Console.WriteLine(formatter, "-----", "--------------",
"------"); // Convert byte array elements to ushort values.
BAToUInt16(byteArray, 1);
BAToUInt16(byteArray, 0);
BAToUInt16(byteArray, 3);
BAToUInt16(byteArray, 5);
BAToUInt16(byteArray, 8);
BAToUInt16(byteArray, 7);
Console.ReadKey(); }
}
}