C# 十六进制 string 转换为浮点型

来源:互联网 发布:java 捕获多个异常 编辑:程序博客网 时间:2024/05/22 04:55

十六进制字符串与数值类型之间转换(C# 编程指南) 

以下示例演示如何执行下列任务: 
获取字符串中每个字符的十六进制值。 
获取与十六进制字符串中的每个值对应的字符。 
将十六进制 string 转换为整型。 
将十六进制 string 转换为浮点型。 
将字节数组转换为十六进制 string。 

 

示例分析 
此示例输出 string 中的每个字符的十六进制值。首先,它将 string 分析为字符数组,然后对每个字符调用 ToInt32(Char) 以获取相应的数字值。最后,在 string 中将数字的格式设置为十六进制表示形式。 
C# 代码:

复制代码
string input = "Hello World!";
char[] values = input.ToCharArray();
foreach (char letter in values)
{
    // Get the integral value of the character.
    int value = Convert.ToInt32(letter);
    // Convert the decimal value to a hexadecimal value in string form.
    string hexOutput = String.Format("{0:X}", value);
    Console.WriteLine("Hexadecimal value of {0} is {1}", letter, hexOutput);
}
复制代码

Output: 
Hexadecimal value of H is 48 
Hexadecimal value of e is 65 
Hexadecimal value of l is 6C 
Hexadecimal value of l is 6C 
Hexadecimal value of o is 6F 
Hexadecimal value of is 20 
Hexadecimal value of W is 57 
Hexadecimal value of o is 6F 
Hexadecimal value of r is 72 
Hexadecimal value of l is 6C 
Hexadecimal value of d is 64 
Hexadecimal value of ! is 21 

示例分析

十六进制值的 string 并输出对应于每个十六进制值的字符。首先,它调用 Split(array<Char>[]()[]) 方法以获取每个十六进制值作为数组中的单个 string。然后调用 ToInt32(String, Int32) 以将十六进制转换为表示为 int 的十进制值。示例中演示了用于获取对应于该字符代码的字符的两种不同方法。第一种方法是使用 ConvertFromUtf32(Int32),它将对应于整型参数的字符作为 string 返回。第二种方法是将 int 显式转换为 char。 
C# 代码:

复制代码
string hexValues = "48 65 6C 6C 6F 20 57 6F 72 6C 64 21";
string[] hexValuesSplit = hexValues.Split(' ');
foreach (String hex in hexValuesSplit)
{
    // Convert the number expressed in base-16 to an integer.
    int value = Convert.ToInt32(hex, 16);
    // Get the character corresponding to the integral value.
    string stringValue = Char.ConvertFromUtf32(value);
    char charValue = (char)value;
    Console.WriteLine("hexadecimal value = {0}, int value = {1}, char value = {2} or {3}",
    hex, value, stringValue, charValue);
}
复制代码

Output: 
hexadecimal value = 48, int value = 72, char value = H or H 
hexadecimal value = 65, int value = 101, char value = e or e 
hexadecimal value = 6C, int value = 108, char value = l or l 
hexadecimal value = 6C, int value = 108, char value = l or l 
hexadecimal value = 6F, int value = 111, char value = o or o 
hexadecimal value = 20, int value = 32, char value = or 
hexadecimal value = 57, int value = 87, char value = W or W 
hexadecimal value = 6F, int value = 111, char value = o or o 
hexadecimal value = 72, int value = 114, char value = r or r 
hexadecimal value = 6C, int value = 108, char value = l or l 
hexadecimal value = 64, int value = 100, char value = d or d 
hexadecimal value = 21, int value = 33, char value = ! or ! 

 

示例分析 

此示例演示了将十六进制 string 转换为整数的另一种方法,即调用 Parse(String, NumberStyles) 方法。 
C# 代码:

string hexString = "8E2";
int num = Int32.Parse(hexString, System.Globalization.NumberStyles.HexNumber);
Console.WriteLine(num);

Output: 2274


示例分析 

下面的示例演示如何使用 System..::.BitConverter 类和 Int32..::.Parse 方法将十六进制 string 转换为浮点型。 
C# 代码:

复制代码
string hexString = "43480170";
uint num = uint.Parse(hexString, System.Globalization.NumberStyles.AllowHexSpecifier);
byte[] floatVals = BitConverter.GetBytes(num);
float f = BitConverter.ToSingle(floatVals, 0);
Console.WriteLine("float convert = {0}", f);
复制代码

Output: 200.0056

 

示例分析 

下面的示例演示如何使用 System..::.BitConverter 类将字节数组转换为十六进制字符串。 
C#代码:

复制代码
byte[] vals = { 0x010xAA0xB10xDC0x100xDD };
string str = BitConverter.ToString(vals);
Console.WriteLine(str);
str = BitConverter.ToString(vals).Replace("-""");
Console.WriteLine(str);
复制代码

Output: 
01-AA-B1-DC-10-DD 
01AAB1DC10DD 

只是msdn上的盗版!代码如下:

复制代码
public string StrToHex(string mStr) //返回处理后的十六进制字符串
{
    return BitConverter.ToString(
    ASCIIEncoding.Default.GetBytes(mStr)).Replace("-"" ");

/* StrToHex */
public string HexToStr(string mHex) // 返回十六进制代表的字符串
{
    mHex = mHex.Replace(" """);
    if (mHex.Length <= 0return "";
    byte[] vBytes = new byte[mHex.Length / 2];
    for (int i = 0; i < mHex.Length; i += 2)
    if (!byte.TryParse(mHex.Substring(i, 2), NumberStyles.HexNumber, nullout vBytes[i / 2]))
    vBytes[i / 2] = 0;
    return ASCIIEncoding.Default.GetString(vBytes);

/* HexToStr */ 


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 没地方晒被子怎么办 天猫收不到退款金额怎么办 页面卡住不动了怎么办 电脑页面不动了怎么办 电脑页面点不动怎么办 还呗还款失败怎么办 省呗还款失败怎么办 手机百度云和谐怎么办 服务器连接不上怎么办 微粒贷请求失败怎么办 房子里手机信号不好怎么办 屋里上网没信号怎么办 屋子里面没信号怎么办 crm服务器关机了怎么办 日本代金券诈骗怎么办 发票已认证 作废怎么办 淘宝不发发票怎么办 ipd密码忘记了怎么办 apple id闪退怎么办 信用卡持卡人死亡欠款怎么办 信用卡名字错了怎么办 ios超出手机内存怎么办 app id停用了怎么办 相机储存空间不足怎么办 苹果icloud8满了怎么办 红米云空间已满怎么办 忘记手机密码怎么办oppo oppo云相册丢失怎么办 oppoa79密码忘了怎么办 云存储空间满了怎么办 云备份空间不足怎么办 安卓没有中文怎么办 燃气表显示异常怎么办 is语音登录不了怎么办 is语音禁止登录怎么办 淘宝竞争不过同行怎么办 碰到比价的顾客怎么办 淘宝同行恶意捣乱怎么办 怀孕吃了打虫药怎么办 阿迪鞋微信中签不能取怎么办 康乃馨花叶长斑怎么办