打印

十六进制浮点数 如何转换成十进制浮点数??

[复制链接]
2607|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ky_21ic|  楼主 | 2014-3-19 13:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
soso| | 2014-3-19 14:36 | 只看该作者
//十六进制转十进制
Console.WriteLine("十六进制 CC的十进制表示: "+Convert.ToInt32("CC", 16));

16进制转换成汉字
///<summary>
        /// 从16进制转换成汉字
        /// </summary>
        /// <param name="hex"></param>
        /// <param name="charset">编码,如"utf-8","gb2312"</param>
       /// <returns></returns>
        public static string UnHex(string hex, string charset)
        {
           if (hex == null)
                throw new ArgumentNullException("hex");
             hex = hex.Replace(",", "");
             hex = hex.Replace("\n", "");
             hex = hex.Replace("\\", "");
             hex = hex.Replace(" ", "");
            if (hex.Length % 2 != 0)
            {
                 hex += "20";//空格
             }
            // 需要将 hex 转换成 byte 数组。
            byte[] bytes = new byte[hex.Length / 2];

           for (int i = 0; i < bytes.Length; i++)
            {
                try
                {
                    // 每两个字符是一个 byte。
                     bytes = byte.Parse(hex.Substring(i * 2, 2),
                     System.Globalization.NumberStyles.HexNumber);
                 }
                catch
                {
                    // Rethrow an exception with custom message.
                    throw new ArgumentException("hex is not a valid hex number!", "hex");
                 }
             }
             System.Text.Encoding chs = System.Text.Encoding.GetEncoding(charset);
            return chs.GetString(bytes);
         }

使用特权

评论回复
板凳
光脚板| | 2014-3-19 20:41 | 只看该作者
请问楼主什么叫十六进制浮点数和十进制浮点数?

使用特权

评论回复
地板
ky_21ic|  楼主 | 2014-3-21 14:32 | 只看该作者
没看懂啊。。

使用特权

评论回复
5
ky_21ic|  楼主 | 2014-3-27 15:40 | 只看该作者
有人没有?

使用特权

评论回复
6
WYT440| | 2014-3-27 18:50 | 只看该作者
楼主的意思是不是IEEE745标准格式浮点数与十进制格式浮点数的转换?

例如利用IEEE754标准将数176.0625表示为单精度浮点数:
176.0652
转换成二进制:10110000.0001
二进制结果:0100 0011 0011 0000 0001 0000 0000 0000
十六进制结果:0x43301000


如果是这样理解的话,可以帮你一下下.....

使用特权

评论回复
7
ky_21ic|  楼主 | 2014-5-10 19:16 | 只看该作者
WYT440 发表于 2014-3-27 18:50
楼主的意思是不是IEEE745标准格式浮点数与十进制格式浮点数的转换?

例如利用IEEE754标准将数176.0625表示 ...

是的。。

使用特权

评论回复
8
yamato2011| | 2014-5-25 15:14 | 只看该作者
ky_21ic 发表于 2014-5-10 19:16
是的。。

你这数字是在代码中用的还是显示出来你自己看的?代码中使用的话,寄存器中显示的就是那个16进制的模式.,要显示在LCD上或者终端上,那就要转ASCII码。不知道你是哪种需求?

使用特权

评论回复
9
winfeng| | 2014-5-25 16:43 | 只看该作者
这不都用sprintf()实现吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

65

主题

211

帖子

1

粉丝