vb.net 教程 1-6 資料型別:數值資料轉換2
阿新 • • 發佈:2019-02-03
不同於上一節的一般數值到字串的轉換
本節談談進位制間的轉換,主要涉及十進位制轉到二進位制、八進位制和十六進位制以及二進位制、八進位制和十六進位制轉到十進位制。
之前在vb6中對進位制間的轉換是比較麻煩的事情,但是vb.net就簡單多了,只需要使用到Convert 類,將一個基本資料型別轉換為另一個基本資料型別。
看以下程式碼:
Sub main() Dim i As Integer i = 255 Console.WriteLine("十進位制轉為二進位制:" & Convert.ToString(i, 2)) Console.WriteLine("十進位制轉為八進位制:" & Convert.ToString(i, 8)) Console.WriteLine("十進位制轉為十六進位制:" & Convert.ToString(i, 16)) Dim x As String x = "11111111" Console.WriteLine("二進位制轉為十進位制:" & Convert.ToInt32(x, 2)) x = "377" Console.WriteLine("二進位制轉為十進位制:" & Convert.ToInt32(x, 8)) x = "ff" Console.WriteLine("十六進位制轉為十進位制:" & Convert.ToInt32(x, 16)) Console.ReadKey() End Sub
執行結果:
使用到的方法:
ToString(value As Integer, toBase As Integer):
輸出字串,value表示對應的十進位制數值,toBase只能是2、8、10或者16,表示進位制。
ToInt32 (value As String, fromBase As Integer):
輸出Int32整數,value字串表示一個二進位制、八進位制和、十進位制或者十六進位制的數,fromBase只能是2、8、10或者16,表示進位制。
如果使用了不能轉換的資料,那麼執行時會發生錯誤。將字串設為"qff"再按照十六進位制轉為十進位制,由於q不是十六進位制的有效數字,所以發生錯誤:
另外補充2點:
1、format()方法也可以將十進位制轉為十六進位制字串
Sub main()
Dim i As Integer
i = 255
Console.WriteLine("十進位制轉為十六進位制:" & Format(i, "x"))
Console.ReadKey()
End Sub
但是遺憾的是,不能將十六進位制字串轉為十進位制整型數值。
2、整型數值也可以直接定義為十六進位制形式,常常用於常量的定義:
Private Const FILE_SHARE_READ As Integer = &H1
如下程式碼:
Dim k As Integer = &H23
Console.WriteLine("k=" & k)
如果定義了一個整型的十六進位制數值,那麼可以使用format轉為十進位制的整型數值:
Console.WriteLine("十進位制轉為十六進位制:" & Format(k, "D"))
完整的程式碼及輸出結果:
Sub main()
Dim k As Integer = &H23
Console.WriteLine("k=" & k)
Console.WriteLine("十進位制轉為十六進位制:" & Format(k, "D"))
Console.ReadKey()
End Sub