C#中二进制、十进制和十六进制互相转换的方法

https://www.cnblogs.com/hitfredrick/p/6403003.html

二进制在C#中无法直接表示,我们一般用0和1的字符串来表示一个数的二进制形式。比如4的二进制为“100”。下面介绍C#里面用于进制转换的方法。

十进制转换为二进制(int-->string)

System.Convert.ToString(d, 2);// d为int类型 以4为例,输出为100


十六进制转换为二进制(int-->string)

System.Convert.ToString(d, 2);// d为int类型 以0X14为例,输出为10100


上面ToString函数的第二个参数表示目标数字系统的基数。

二进制转换为十进制(string-->int

System.Convert.ToInt32(s, 2);// d为string类型 以“1010”为例,输出为10


十六进制转换为十进制string-->int、int-->int)

方法一:

System.Convert.ToString(0xa,10);// 以0XA为例,输出为10


或者

System.Convert.ToInt32("0x41", 16);//以"0x41"为例,输出为65


方法二:

System.Int32.Parse(s, System.Globalization.NumberStyles.HexNumber);//s为string类型,以“41”为例,输出为65

注意这里的s中不能带有“0X”或者“0x”,区别于上面的方法。

二进制转换为十六进制string-->int

先转换为十进制,在转换为十六进制

string.Format("{0:X}",System.Convert.ToInt32(s, 2));// s为string类型 以“1010”为例,输出为A


十进制转换为十六进制

十进制转换为十六进制不需要特殊的方法,只要对输出格式进行控制一下就可以。


或者使用string.Format("{0:x}", dec)方法进行控制,也可以用s.ToString("X")方式进行控制。


除了数制转换之外,数据类型的转换也比较重要。对于基本数据类型,byte、char、int、string以及它们的数组形式的转换虽然简单,但是比较基础的知识。网上也有很多详解,用到的时候自行查阅即可。


  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#二进制文件的读写可以使用FileStream和BinaryWriter/BinaryReader类来实现。具体步骤如下: 1.写入二进制文件 ```csharp // 定义一个自定义类 [Serializable] public class MyClass { public int a; public string b; public double c; } // 创建一个MyClass对象 MyClass myClass = new MyClass(); myClass.a = 123; myClass.b = "abc"; myClass.c = 3.14; // 创建一个FileStream对象,指定文件路径和打开方式 FileStream fileStream = new FileStream(@"D:\myClass.bin", FileMode.Create); // 创建一个BinaryWriter对象,将FileStream对象作为参数传入 BinaryWriter binaryWriter = new BinaryWriter(fileStream); // 使用Write方法将MyClass对象写入二进制文件 binaryWriter.Write(myClass.a); binaryWriter.Write(myClass.b); binaryWriter.Write(myClass.c); // 关闭BinaryWriter和FileStream对象 binaryWriter.Close(); fileStream.Close(); ``` 2.读取二进制文件 ```csharp // 创建一个FileStream对象,指定文件路径和打开方式 FileStream fileStream = new FileStream(@"D:\myClass.bin", FileMode.Open); // 创建一个BinaryReader对象,将FileStream对象作为参数传入 BinaryReader binaryReader = new BinaryReader(fileStream); // 从二进制文件读取数据,并赋值给MyClass对象 MyClass myClass = new MyClass(); myClass.a = binaryReader.ReadInt32(); myClass.b = binaryReader.ReadString(); myClass.c = binaryReader.ReadDouble(); // 输出MyClass对象的属性值 Console.WriteLine(myClass.a); Console.WriteLine(myClass.b); Console.WriteLine(myClass.c); // 关闭BinaryReader和FileStream对象 binaryReader.Close(); fileStream.Close(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值