C#实现十六进制与十进制相互转换以及不同进制表示
概述
在C#编程中,时常需要对数字进行不同进制的表示和相互转换。其中,比较常见的是十六进制和十进制的转换。下面就是C#实现十六进制与十进制相互转换以及不同进制表示的完整攻略。
十进制转十六进制
在C#中,可以使用ToString
方法将一个十进制数转为十六进制格式的字符串。如下例:
int decNum = 255; // 十进制数
string hexNum = decNum.ToString("X"); // 将十进制数转为十六进制字符串
Console.WriteLine(hexNum); // 输出 F
通过上述程序,可以将一个十进制数 255
转为十六进制字符串 "FF"
。
十六进制转十进制
同样的,在C#中,可以使用Convert.ToInt32
方法将一个十六进制字符串转为十进制数。如下例:
string hexNum = "FF"; // 十六进制字符串
int decNum = Convert.ToInt32(hexNum, 16); // 将十六进制字符串转为十进制数
Console.WriteLine(decNum); // 输出 255
通过上述程序,可以将一个十六进制字符串 "FF"
转为十进制数 255
。
不同进制表示
在C#中,也可以使用0x
前缀(或0X
)来表示一个十六进制数,使用0b
前缀(或0B
)来表示一个二进制数,使用0
前缀来表示一个八进制数。如下例:
int hexNum = 0xFF; // 十六进制数
int binNum = 0b1010; // 二进制数
int octNum = 0123; // 八进制数
Console.WriteLine(hexNum); // 输出 255
Console.WriteLine(binNum); // 输出 10
Console.WriteLine(octNum); // 输出 83
通过上述程序,可以定义一个十六进制数、一个二进制数和一个八进制数,并将它们输出为十进制数值。
示例1
现在,我们需要将一个十进制数转为十六进制形式,并输出到文件中。具体如下:
int decNum = 1024;
string hexNum = decNum.ToString("X");
string filePath = @"D:\test.txt";
using (StreamWriter sw = new StreamWriter(filePath))
{
sw.Write(hexNum);
}
上述程序中,首先定义了一个十进制数 1024
,然后将其转为十六进制字符串 "400"
。接着,将该字符串 hexNum
输出到文件 "D:\test.txt"
中。
示例2
现在,我们需要读取一个十六进制数字符串文件,将其中的所有数字转为十进制数,并输出。具体如下:
string filePath = @"D:\test.txt";
using (StreamReader sr = new StreamReader(filePath))
{
string hexNum = sr.ReadLine(); // 读取十六进制字符串
while (hexNum != null)
{
int decNum = Convert.ToInt32(hexNum, 16); // 将十六进制字符串转为十进制数
Console.WriteLine(decNum); // 输出十进制数
hexNum = sr.ReadLine();
}
}
上述程序中,首先定义了一个文件路径 filePath
,然后通过StreamReader
类读取文件中的十六进制字符串,并使用Convert.ToInt32
方法将其转为十进制数,并将结果输出到控制台中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#实现十六进制与十进制相互转换以及及不同进制表示 - Python技术站