注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

浮点数的二进制形式  

2013-05-26 15:51:38|  分类: C# & .NET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
该段代码显示了符合IEEE754规范的浮点数表达形式,C#等语言都实现了该规范,代码如下:
using System;

namespace IEEE754Test
{
   class Program
   {
       static void Main(string[] args)
       {
           byte b = 10;
           Console.WriteLine(ByteToBinaryString(b));
           double d = Math.Pow(2, -1074);
           Console.WriteLine(BytesToBinaryString(BitConverter.GetBytes(d)));
           Console.WriteLine(BytesToBinaryString(BitConverter.GetBytes(9.4)));
           Console.Read();

       }

       /// <summary>
       /// 将字节显示为对应的二进制字符串
       /// </summary>
       static string ByteToBinaryString(byte b)
       {
           char[] chArr = new char[8];
           for (int i = 0; i <8; i++)
           {
               int t = ((1 << i) & b) >> i;
               chArr[7-i] = (t == 1 ? '1' : '0');

           }
           return new string(chArr);
       }

       /// <summary>
       /// 将字节数组显示为对应的二进制字符串
       /// </summary>
       static string BytesToBinaryString(byte[] bs)
       {
           string s = string.Empty;
           for (int i = 0; i < bs.Length; i++)
           {
               s = s + ByteToBinaryString(bs[bs.Length - 1 - i]);
           }
           return s;
       }
   }
}
下面是运行结果:
浮点数的二进制形式 - Lemniscate - 一亩三分地
 一个double型的浮点数占8个字节,也就是64位,所以对于double型,长度都是64位,如果是浮点数,则所占的字节为4个,一共是32位。注意2^(-1074)是IEEE754规范中表示的最接近0的数。
接下来准备写一个将字符串反转为浮点数的函数。
  评论这张
 
阅读(745)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016