可以先把16进制的转换成2进制,0F 01就是0000 1111 0000 0001,然后换成10进制就是3841了;16进制换成2进制是基础,一个1位的16进制数为一个4位的2进制数,本身没有什么诀窍,记住就可以了,0H(16进制)=0000(2进制)、1H=0001、2H=0010、3H=0011、4H=0100、5H=0101、6H=0110、7H=0111、8H=1000、9H=1001、A=1010、B=1011、C=1100、D=1101、E=1110、F=1111。
当然你也可以直接转换,公式类似于2进制转10进制一样。即第1位(从右到坐,即从低位开始算)乘以16的0次方+第2位乘以16的1次方+第3位的乘以16的2次方……这样一直这样,加到位结束。如上例就是0F01=1*16的0次方+0乘以的16的1次方+15乘以16的2次方+0乘以16的3次方=1+0+3840+0=3841。
最后给出你例子的答案:0F01=3841;1C01=7169;
你可以利用计算机的科学计算器试试!
假定txt文件中的各数据之间有个数不等的空格,但没有不属于十六进制字符 ,将txt文件添加到项目
static void Main(string[] args)
{
//创建新文件存放10进制字符
FileInfo f = new FileInfo(@"..\..\");
StreamWriter sw = f.CreateText();
int val;
//从原文件读取每行
string[] hexStr = File.ReadAllLines(@"..\..\");
//方法Split将空格作为分隔符,第2个参数使返回的字符串不包含空格。s成为字符串数组
var Query = from s in hexStr
let x = s.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)进制数转换公式
select x;
foreach (var q in Query)
{
for (int i = 0; i < q.Length; i++)
{
//将16进制字符串变成10进制数。
val = int.Parse(q[i], System.Globalization.NumberStyles.HexNumber);
//十进制字符写入流。
sw.Write(val.ToString()+" ");
}
sw.WriteLine();
}
// 关闭流,将流中字符写入文件。
sw.Close();
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论