C# 进制转换

1.十进制数转二进制数(结果:11)
            string s1 = Convert.ToString(3, 2);

2.十进制数转二进制数(结果:0011)  (左侧补位方法,转八进制,转十六进制……与之类似)
            string s2 = Convert.ToString(3, 2).PadLeft(4, '0');

3.十进制数转二进制数(结果:1100)  (右侧补位方法,转八进制,转十六进制……与之类似)
            string s3 = Convert.ToString(3, 2).PadRight(4, '0');

4.十六进制转二进制数(结果:00001111)
            string s4 = Convert.ToString(0xf, 2).PadLeft(8, '0');
            string s5 = Convert.ToString(0xF, 2).PadLeft(8, '0');  //不区分大小写,结果一样。

5.十六进制转十进制数
            string s6 = Convert.ToString(0xf, 10);                  //结果:15,string类型
            string s7 = Convert.ToString(0xf, 10).PadLeft(4, '0');  //结果:0015,string类型
            int s8 = Convert.ToInt32("f", 16);                     //结果:15,int类型

6.二进制转十进制(结果:15)
            int s9 = Convert.ToInt32("1111", 2);

7.十六进制转十进制(结果:48)
            int s10 = Convert.ToInt32("30", 16);

8.十进制转十六进制(结果:f)
            string s12 = string.Format("{0:x0}", 15);
            // 第2种方法:
            string s12 = convert.ToString(15,16); 

9.二进制转十六进制(结果:f)
            string s13 = string.Format("{0:x}", Convert.ToInt32("1111", 2));

10.字符转十进制数(结果:65)
            int s14 = Convert.ToInt32('A');

11.将字符串中第1个字符转成十进制数(结果:65)
            string s15 = "AB";
            int s16 = Convert.ToInt32(Convert.ToChar(s15[0]));

            Console.WriteLine(s16);
            
12.十六进制转浮点数(结果:0.68)
            byte[] bt = new byte[4] { 0x7b, 0x14, 0x2e, 0x3f };
            float ff = BitConverter.ToSingle(bt, 0);

13,浮点数转十六进制数
            float f = 0.68f;
            string str1 = BitConverter.ToString(BitConverter.GetBytes(f)).Replace("-", ""); //结果:7B142E3F
            string str2 = BitConverter.ToString(BitConverter.GetBytes(f));    //结果:7B-14-2E-3F

14.int 转字符串
            int n = 49;
            string str1 = n.ToString();     //结果:49
            string str2 = n.ToString("x");  //结果:0x31
 
15.字符串转int
             string str = "31";
            int i = Convert.ToInt32(str);  //结果:31
    
16.byte 转 int 
   

16.byte 转 int 
             byte bt = 0x31;
            int i = Convert.ToInt32(bt);  //结果;49

17.ushort[]转换为float类型

            ushort[] val ;      

            List<byte> result = new List<byte>();

           result.AddRange(BitConverter.GetBytes(val[0]));

           result.AddRange(BitConverter.GetBytes(val[1]));

           float JG= BitConverter.ToSingle(result.ToArray(), 0);

18.float转换为ushort[]类型 

           float value;

           ushort lowOrderValue = BitConverter.ToUInt16(BitConverter.GetBytes(value), 2);

           ushort highOrderValue = BitConverter.ToUInt16(BitConverter.GetBytes(value), 0);
 

### C# 中的进制转换方法 在 C# 编程中,可以利用 `Convert` 类的方法轻松实现不同进制之间的换。以下是详细的说明和代码示例。 #### 使用 `Convert.ToInt32` 将字符串形式的数值从指定进制转换为十进制 此方法适用于将二进制、八进制或十六进制表示的字符串换为对应的十进制整数。其语法如下: ```csharp int result = Convert.ToInt32(value, fromBase); ``` 其中: - `value` 是要换的字符串。 - `fromBase` 表示原始数据的进制(例如 2 表示二进制,8 表示八进制,16 表示十六进制)。 **示例:** ```csharp string binaryString = "1010"; int decimalValue = Convert.ToInt32(binaryString, 2); // 结果为 10 Console.WriteLine(decimalValue); string octalString = "12"; decimalValue = Convert.ToInt32(octalString, 8); // 结果为 10 Console.WriteLine(decimalValue); string hexString = "A"; decimalValue = Convert.ToInt32(hexString, 16); // 结果为 10 Console.WriteLine(decimalValue); ``` [^1] --- #### 使用 `Convert.ToString` 将十进制整数换为目标进制的字符串 该方法用于将一个十进制整数换为其对应的目标进制表示。其语法如下: ```csharp string result = Convert.ToString(value, toBase); ``` 其中: - `value` 是待换的十进制整数。 - `toBase` 表示目标进制(例如 2 表示二进制,8 表示八进制,16 表示十六进制)。 **示例:** ```csharp int decimalNumber = 10; // 换为二进制 string binaryResult = Convert.ToString(decimalNumber, 2); // 结果为 "1010" Console.WriteLine(binaryResult); // 换为八进制 string octalResult = Convert.ToString(decimalNumber, 8); // 结果为 "12" Console.WriteLine(octalResult); // 换为十六进制 string hexResult = Convert.ToString(decimalNumber, 16); // 结果为 "a" Console.WriteLine(hexResult.ToUpper()); // 如果需要大写字母,则调用 ToUpper() 方法 ``` [^3] --- #### 实现任意两个进制间的间接换 如果需要在非十进制之间进行直接换(如二进制到八进制),可以通过中间的十进制作为桥梁完成换过程。具体步骤如下: 1. 首先使用 `Convert.ToInt32` 将源进制的数据换为十进制; 2. 然后再使用 `Convert.ToString` 将十进制的结果换为目标进制。 **示例:** ```csharp string binaryInput = "10000"; // 步骤 1: 二进制 -> 十进制 int decimalIntermediate = Convert.ToInt32(binaryInput, 2); // 结果为 16 // 步骤 2: 十进制 -> 八进制 string octalOutput = Convert.ToString(decimalIntermediate, 8); // 结果为 "20" Console.WriteLine($"二进制 {binaryInput} 为八进制 {octalOutput}"); ``` [^4] --- #### 大整数支持 (`BigInteger`) 当涉及超出标准整型范围的大数值时,可借助 `System.Numerics.BigInteger` 来扩展进制转换的功能。以下是一个例子展示如何处理超大数据量的情况: **示例:** ```csharp using System; using System.Numerics; class Program { static void Main() { string largeBinary = "1".PadLeft(100, '1'); // 构造一个长度为 100 的全 1 字符串 // 将二进制字符串换为 BigInteger 对象 BigInteger bigDecimal = BigInteger.Parse(largeBinary, System.Globalization.NumberStyles.AllowHexSpecifier); // 输出结果 Console.WriteLine(bigDecimal.ToString("X")); // 显示为十六进制格式 } } ``` --- ### 总结 C# 提供了强大的工具来简化各种进制之间的相互换操作。无论是基本类型的换还是更复杂的场景下涉及到极大数值的操作,都能通过内置函数或者第三方库高效解决。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值