C#中將以0x開頭的16進位字串轉換成對應的整數

來源:互聯網
上載者:User

標籤:c#

有兩種方法:
1. 要轉換成有符號整數,使用 Convert.ToInt32(string, 16) ;
    要轉換成不帶正負號的整數,使用 Convert.ToUInt32(string, 16) 。
    如果 16 進位的字串不是以 0x 或 0X 開頭,比如“af37”,用這種方法也能進行轉換。

2. 要轉換成有符號整數,使用 new System.ComponentModel.Int32Converter().ConvertFromString(string) ;
    要轉換成不帶正負號的整數,使用 new System.ComponentModel.UInt32Converter().ConvertFromString(string) 。
    注意:
       使用這種方法要進行強制類型轉換。
       如果 16 進位的字串不是以 0x 或 0X 開頭,不能用這種方法。

        這兩種方法對字母的大小寫都不敏感,字串以0X或0x開頭都可以。對於16進位表示中可能出現的字元( 從a 到 f),用大寫或小寫表示都行,甚至是大小寫混雜的表示形式也可以,比如像 0Xa3Bf2 這樣的字串能夠被正確處理。
        不管使用哪一種方法,都不要忘記要對可能拋出的異常進行處理。

下面給出一段範例程式碼:

/************************************************** * Author: HAN Wei * Author's blog: http://blog.csdn.net/henter/ * Date: April 22nd, 2015 * Description: demonstrate how to convert hexadecimal string*              with leading 0x into integer**************************************************/using System;namespace HexStringConvertToInt{    class Program    {        static void Main(string[] args)        {            string hexValue = "0Xa3Bf2b10";            // Method 1:            Console.WriteLine("Method 1:");            int decValue = 0;            try            {                decValue = Convert.ToInt32(hexValue, 16);            }            catch (Exception e)            {                Console.WriteLine("An error occurred while converting!");                Console.WriteLine("Error message: " + e.Message);                Console.ReadLine();                return;            }            Console.WriteLine("signed integer value: {0}", decValue);                        uint uDecValue = 0;            try            {                uDecValue = Convert.ToUInt32(hexValue, 16);            }            catch (Exception e)            {                Console.WriteLine("An error occurred while converting!");                Console.WriteLine("Error message: " + e.Message);                Console.ReadLine();                return;            }            Console.WriteLine("unsigned integer value: {0}", uDecValue);            Console.WriteLine();            // Method 2:            Console.WriteLine("------------------------------");            Console.WriteLine("Method 2:");            int iValue = 0;            try            {                iValue = (int)new System.ComponentModel.Int32Converter().ConvertFromString(hexValue);            }            catch (Exception e)            {                Console.WriteLine("An error occurred while converting!");                Console.WriteLine("Error message: " + e.Message);                Console.ReadLine();                return;            }            Console.WriteLine("signed integer value: {0}", iValue);                        uint uValue = 0;            try            {                uValue = (uint)new System.ComponentModel.UInt32Converter().ConvertFromString(hexValue);            }            catch (Exception e)            {                Console.WriteLine("An error occurred while converting!");                Console.WriteLine("Error message: " + e.Message);                Console.ReadLine();                return;            }            Console.WriteLine("unsigned integer value: {0}", uValue);            Console.ReadLine();        }    }}


 

C#中將以0x開頭的16進位字串轉換成對應的整數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.