⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c#单精度浮点数从十进制转化为机器表示.txt

📁 用C#实现把一个十进制的浮点数转化为基于IEEE754浮点数存储规范的二进制表示形式
💻 TXT
字号:
        private void RealDtoB(double number)
        {
            double zhenshu, xiaoshu, jieguo;
            byte[] RealByte = new byte[4];
            string strZ, strX = "", strJ;
            int numb, i = 1, len, le, len2, len3, Bias = 127;
            string s, str1, str2, Jiema, weishu, jia;
            string Jieguo1, Jieguo2, Jieguo3, Jieguo4;

            if (Math.Abs(number) == 0)
            {
                RealByte[0] = 0;
                RealByte[1] = 0;
                RealByte[2] = 0;
                RealByte[3] = 0;
            }
            else
            {
                if (number > 0)
                {
                    s = "0";
                }
                else
                {
                    s = "1";
                }
                zhenshu = Math.Floor(Math.Abs(number));
                numb = Convert.ToInt32(zhenshu);
                strZ = Convert.ToString(numb, 2);
                xiaoshu = Math.Abs(number) - zhenshu;
                for (i = 0; ((xiaoshu != 0) && (i < 23)); i++)
                {
                    jieguo = xiaoshu * 2;
                    strJ = jieguo.ToString();
                    strX += strJ.Substring(0, 1);
                    zhenshu = Math.Floor(jieguo);
                    xiaoshu = jieguo - zhenshu;
                }
                strJ = strZ + "." + strX;
                str1 = strJ.Substring(0, 1);
                if (str1.Equals("1"))
                {
                    len = strZ.Length;
                    le = len + Bias - 1;
                    Jiema = Convert.ToString(le, 2);
                    len2 = Jiema.Length;
                    if (len2 < 8)
                    {
                        for (i = 0, jia = ""; i < 8 - len2; i++)
                        {
                            jia += "0";
                        }
                        Jiema = jia + Jiema;
                    }
                    str2 = strZ.Substring(1, len - 1) + strX;
                    len = str2.Length;
                    if (len > 23)
                    {
                        weishu = str2.Substring(0, 23);
                    }
                    else
                    {
                        weishu = str2;
                    }
                }
                else
                {
                    len = strX.IndexOf("1");
                    le = Bias - (len + 1);
                    Jiema = Convert.ToString(le, 2);
                    len2 = Jiema.Length;
                    if (len2 < 8)
                    {
                        for (i = 0, jia = ""; i < 8 - len2; i++)
                        {
                            jia += "0";
                        }
                        Jiema = jia + Jiema;
                    }
                    len3 = strX.Length;
                    if (len3 == (len + 1))
                    {
                        weishu = "0";
                    }
                    else
                    {
                        weishu = strX.Substring(len + 1);
                    }
                }
                strJ = s + Jiema + weishu;
                len = strJ.Length;
                if (len < 32)
                {
                    for (i = 0; i < 32 - len; i++)
                    {
                        strJ += "0";
                    }
                }
                Jieguo1 = strJ.Substring(0, 8);
                Jieguo2 = strJ.Substring(8, 8);
                Jieguo3 = strJ.Substring(16, 8);
                Jieguo4 = strJ.Substring(24, 8);
                RealByte[0] = Convert.ToByte(Jieguo1, 2);
                RealByte[1] = Convert.ToByte(Jieguo2, 2);
                RealByte[2] = Convert.ToByte(Jieguo3, 2);
                RealByte[3] = Convert.ToByte(Jieguo4, 2);
            }
        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -