/// <summary>
/// 将8进制数转换成16进制数
/// </summary>
/// <param name="convertFrom">八进制数</param>
/// <returns>十六进制数</returns>
private string ConvertNumber8To16(string convertFrom)
{
string check = convertFrom.Replace("0", string.Empty).Replace("1", string.Empty).Replace("2", string.Empty).Replace("3", string.Empty).Replace("4", string.Empty).Replace("5", string.Empty).Replace("6", string.Empty).Replace("7", string.Empty);
if (check.Length > 0)
{
//errorHandle
return string.Empty;
}
string convertTo=string.Empty, convertTo2;//目标数convertTo:将八进制From转换成进制To,
//convertTo2:选转换成进制数,再转换成十六进制数
convertTo2 = ConvertNumber8To2(convertFrom);//先转化为二进制
convertTo = ConvertNumber2To16(convertTo2);
return convertTo;
}
/// <summary>
/// 将8进制转换为2进制
/// </summary>
/// <param name="convertFrom">八进制数</param>
/// <returns>二进制数</returns>
private string ConvertNumber8To2(string convertFrom)
{
string check = convertFrom.Replace("0", string.Empty).Replace("1", string.Empty).Replace("2", string.Empty).Replace("3", string.Empty).Replace("4", string.Empty).Replace("5", string.Empty).Replace("6", string.Empty).Replace("7", string.Empty);
if (check.Length > 0)
{
//errorHandle
return string.Empty;
}
string convertTo = string.Empty, bit;
for (int i = convertFrom.Length - 1; i >= 0; i--)
{
bit = convertFrom.Substring(i, 1);
switch (bit)
{
case "0":
convertTo = "000" + convertTo;
break;
case "1":
convertTo = "001" + convertTo;
break;
case "2":
convertTo = "010" + convertTo;
break;
case "3":
convertTo = "011" + convertTo;
break;
case "4":
convertTo = "100" + convertTo;
break;
case "5":
convertTo = "101" + convertTo;
break;
case "6":
convertTo = "110" + convertTo;
break;
case "7":
convertTo = "111" + convertTo;
break;
}
}
return convertTo;
}
/// <summary>
/// 将2进制转换为16进制
/// </summary>
/// <param name="convertFrom">二进制数</param>
/// <returns>十六进制数</returns>
private string ConvertNumber2To16(string convertFrom)
{
string check = convertFrom.Replace("0", string.Empty).Replace("1", string.Empty);
if (check.Length > 0)
{
//errorHandle
return string.Empty;
}
string convertTo = string.Empty, bit;
int residue,temp = 0;
for (int i = convertFrom.Length - 4; i >= 0; i-=4)
{
bit = convertFrom.Substring(i, 4);//每次减四
switch (bit)
{
case "0000":
convertTo = "0" + convertTo;
break;
case "0001":
convertTo = "1" + convertTo;
break;
case "0010":
convertTo = "2" + convertTo;
break;
case "0011":
convertTo = "3" + convertTo;
break;
case "0100":
convertTo = "4" + convertTo;
break;
case "0101":
convertTo = "5" + convertTo;
break;
case "0110":
convertTo = "6" + convertTo;
break;
case "0111":
convertTo = "7" + convertTo;
break;
case "1000":
convertTo = "8" + convertTo;
break;
case "1001":
convertTo = "9" + convertTo;
break;
case "1010":
convertTo = "A" + convertTo;
break;
case "1011":
convertTo = "B" + convertTo;
break;
case "1100":
convertTo = "C" + convertTo;
break;
case "1101":
convertTo = "D" + convertTo;
break;
case "1110":
convertTo = "E" + convertTo;
break;
case "1111":
convertTo = "F" + convertTo;
break;
}
}
residue = convertFrom.Length % 4;//求余数
if (residue != 0)
{
for (int i = 0; i < residue; i++)
{
temp += Convert.ToInt32(convertFrom.Substring(i, 1))
* Convert.ToInt32(Math.Pow(2, residue - i - 1));
}
}
if (temp != 0)
{
convertTo = temp.ToString() + convertTo;
}
return convertTo;
}
分享到:
相关推荐
C#中,字符串传为16进制是非常使用的算法,如在一些特定是情况下,我们无法储存或传递中文字符串,这时候可以将他转为16进制使用,需要时再将其逆转回来。
由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示 例如: 二进制: 1010 表示为 字符串:”1010″ int d = 10; //十进制转二进制字符串 Console.WriteLine(Convert.ToString(d,2)); //...
十进制小数转化为十六进制小数类 /// /// 十进制整数转化为十六进制(带小数) /// /// <param name="value"></param> /// <returns></returns> public string DecToHex(double value) { string result =...
输入八进制的数值字符串,空格隔开的,然后点击转换即可。也可以反过来转换。 测试网址: https://forum.tuts4you.com/register/ 开发环境:VS2013 C#
c# 字符串 32位 16进制 转换
Matlab将十六进制数转换为十进制数(有符号)(十六转十)
语音计算器 含有二进制 八进制 十进制 十六进制转换 包含大小写输出
c#,进制转换 二进制,十进制,十六进制转换 智能识别
主要介绍了C#十六进制字符串转十进制int的方法,涉及C#操作数制转换的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
输出: 10000010 (二进制) 输出: 202 (八进制) 输出: 82 (十六进制) 1、从程序算法的优化程度、程序的通用性、程序的规范性来评判; 2、没有使用已有的函数或软件包来实现,最好是自己根据数制转换...
十进制转化为二进制_八进制_十六进制代码 C#代码,也就是这些进制互相转化的代码 出产:zzu_10.Net
C#串口通信源代码,可以实现串口通信,实现字符串和16进制的发送以及接受
C#字节数组转16进制字符串 C#字节数组转16进制字符串 QQ:292258449
该类的功能主要是实现16进制转字符串和字符串转16进制字符窜和byte数据方法
该代码可以实现单精度浮点数和16进制字符之间的转换,包含源代码
该资源是用于将十进制数转换为八进制数的程序,编程语言为c#,程序简单易懂,便于实用。
把形如: "FF9A44" 转换成: 0xFF 0x9A 0x44
用的时候,发现很少,就自己写了一个,用c#实现的十六进制转浮点数。
用C#实现十进制转换为八进制