[C#] 字串資料處理
今天工作遇到資料形態處理的小問題
1.
要取出某一BIT用AND的方式
要設某一BIT進去用OR
Bit
0--> &H01
1--> &H02
2--> &H04
3--> &H08
4--> &H10
5--> &H20
6--> &H40
7--> &H80
1.
要取出某一BIT用AND的方式
要設某一BIT進去用OR
Bit
0--> &H01
1--> &H02
2--> &H04
3--> &H08
4--> &H10
5--> &H20
6--> &H40
7--> &H80
2.
C# 進制轉換(二進制、十六進制、十進制互轉)
由於二進制數在C#中無法直接表示,所以所有二進制數都用一個字符串來表示
例如: 二進制: 1010 表示为 字符串:"1010"
int d = 10;
//十進制轉二進制字符串
Console.WriteLine(Convert.ToString(d,2));
//輸出: 1010
//十進制轉十六進制字符串
Console.WriteLine(Convert.ToString(d,16));
//輸出: a
//二進制字符串轉十進制數
string bin = "1010";
Console.WriteLine(Convert.ToInt32(bin,2));
//輸出: 10
//二進制字符串轉十六進制數
string bin = "1010";
Console.WriteLine(string.Format("{0:x}",Convert.ToInt32(bin,2));
//輸出: a
//十六進制轉二進制字符串
Console.WriteLine(Convert.ToString(0xa,2));
//輸出: 1010
//十六進制轉十進制數
Console.WriteLine(Convert.ToString(0xa,10));
//輸出: 10
C#實現轉換十六進制
C#語言有很多值得學習的地方,這裏我們主要介紹C#實現轉換十六進制,包括介紹用來表示十六進制的枚舉值是 HexNumber等方面。
C#實現轉換十六進制
任何數據在計算機內部都是以二進制保存的,所以進制與數據的存儲無關,只與輸入輸出有關。所以,對於進制轉換,我們只關心字符串中的結果。
在上面的第 4 條中提到了 ToString() 方法可以將數值轉換成字符串,不過在字符串中,結果是以十進制顯示的。現在我們帶给它加一些参數,就可以讓C#實現轉換成十六進制——使用 ToString(string) 方法。
這裏需要一個 string 類型的参數,這就是格式說明符。十六進制的格式說明符是 "x" 或者 "X",使用這兩種格式說明符的區別主要在於 A-F 六個數字:"x" 代表 a-f 使用小寫字母表示,而 "X" 而表示 A-F 使用大字字母表示。如下例:
1. private void TestHex() {
2. int a = 188;
3. this.textBox1.Text = "";
4. this.textBox1.AppendText("a(10) = " + a.ToString() + "\n");
5. this.textBox1.AppendText("a(16) = " + a.ToString("x") + "\n");
6. this.textBox1.AppendText("a(16) = " + a.ToString("X") + "\n");
7. }
運行結果如下:
1. a(10) = 188
2. a(16) = bc
3. a(16) = BC
由於二進制數在C#中無法直接表示,所以所有二進制數都用一個字符串來表示
例如: 二進制: 1010 表示为 字符串:"1010"
int d = 10;
//十進制轉二進制字符串
Console.WriteLine(Convert.ToString(d,2));
//輸出: 1010
//十進制轉十六進制字符串
Console.WriteLine(Convert.ToString(d,16));
//輸出: a
//二進制字符串轉十進制數
string bin = "1010";
Console.WriteLine(Convert.ToInt32(bin,2));
//輸出: 10
//二進制字符串轉十六進制數
string bin = "1010";
Console.WriteLine(string.Format("{0:x}",Convert.ToInt32(bin,2));
//輸出: a
//十六進制轉二進制字符串
Console.WriteLine(Convert.ToString(0xa,2));
//輸出: 1010
//十六進制轉十進制數
Console.WriteLine(Convert.ToString(0xa,10));
//輸出: 10
C#實現轉換十六進制
C#語言有很多值得學習的地方,這裏我們主要介紹C#實現轉換十六進制,包括介紹用來表示十六進制的枚舉值是 HexNumber等方面。
C#實現轉換十六進制
任何數據在計算機內部都是以二進制保存的,所以進制與數據的存儲無關,只與輸入輸出有關。所以,對於進制轉換,我們只關心字符串中的結果。
在上面的第 4 條中提到了 ToString() 方法可以將數值轉換成字符串,不過在字符串中,結果是以十進制顯示的。現在我們帶给它加一些参數,就可以讓C#實現轉換成十六進制——使用 ToString(string) 方法。
這裏需要一個 string 類型的参數,這就是格式說明符。十六進制的格式說明符是 "x" 或者 "X",使用這兩種格式說明符的區別主要在於 A-F 六個數字:"x" 代表 a-f 使用小寫字母表示,而 "X" 而表示 A-F 使用大字字母表示。如下例:
1. private void TestHex() {
2. int a = 188;
3. this.textBox1.Text = "";
4. this.textBox1.AppendText("a(10) = " + a.ToString() + "\n");
5. this.textBox1.AppendText("a(16) = " + a.ToString("x") + "\n");
6. this.textBox1.AppendText("a(16) = " + a.ToString("X") + "\n");
7. }
運行結果如下:
1. a(10) = 188
2. a(16) = bc
3. a(16) = BC
3.
C# 防止程式重復執行
C#要防止程式重複執行有以下兩種方法
方法1. 判斷process清單的程式名稱是否重複就可知道是否重複執
4.字串處理
URL : http://a-jau.blogspot.tw/2012/01/cstringindexoflastindexofsubstringsplit.html
方法1. 判斷process清單的程式名稱是否重複就可知道是否重複執
1
2
3
4
5
6
7
8
9
| //取得此process的名稱 String name = Process.GetCurrentProcess().ProcessName; //取得所有與目前process名稱相同的process Process[] ps = Process.GetProcessesByName(name); //ps.Length > 1 表示此proces以重複執行 if (ps.Length > 1) { System.Environment.Exit(2); } |
4.字串處理
URL : http://a-jau.blogspot.tw/2012/01/cstringindexoflastindexofsubstringsplit.html
留言
張貼留言