8位浮点数的表示法

您所在的位置:网站首页 float怎么存储10的-8 8位浮点数的表示法

8位浮点数的表示法

2024-07-16 04:20:13| 来源: 网络整理| 查看: 265

32位浮点数的计算机内部表示是由IEEE754标准定义的,参考文献相当多。 在这里插入图片描述 简单来说,是由1位符号位、8位指数位(阶码)和23位小数部分共同定义的。如果你想看看任何一个浮点数的4个字节的二进制表示细节,可以在这个网站里进行练习。

https://www.h-schmidt.net/FloatConverter/IEEE754.html

IEEE754规范中只定义了32位(float)和64位(double)浮点的表示法,好像还有扩展的16位、128位的浮点数表示法,但用的最多的仍是32位、64位浮点。

IEEE754规范实际上还是挺复杂的,小数部分有隐含1.0的情况(规格化的小数),也有非规格化的小数,阶码要加偏移量,还要表示无穷大,NaN这些特殊的值,还要让数字0的内部表示全为0。

8位浮点数表示法,并没有相关规范,有一个MiniFloat,但与我们教科书的不太一样。

这里是一种简化的8位浮点数定义: 在这里插入图片描述

1)这里的符号位是最高位:0为正,1为负 2)指数位,阶码,3位,为了表示-4到3的范围,需要减去4,即000表示-4,111表示3,注意与IEEE754规范不同 3)小数位,4位:按IEEE754规范,隐含着1.0

为了试验这些浮点数,我写了一个C#程序:

/// /// 8位浮点数表示 /// +----+-----------+----------------+ /// + b7 | b6 b5 b4 | b3 b2 b1 b0 | /// +sign| exp | mantissa | /// +----+-----------+----------------+ /// 符号位:0为正,1为负 /// 指数位,阶码,3位:000表示-4,111表示3 /// 小数位,4位:按IEEE754规范,隐含着1.0 /// public struct MiniFloat { public readonly static double DEFAULT_MANTISSA = 1.0; public int sign; // 符号位,0为正,1为负 public int e; // [-4, 3] public int m; // [0, 15] public MiniFloat(int s, int e, int m) { this.sign = s; this.e = e; this.m = m; } public MiniFloat(int binary) { this.sign = (binary & 0x80) >> 7; this.e = ((binary & 0x70) >> 4) - 4; // 3位阶码,表示范围为0到7,减去4后,表示范围为-4到3 this.m = binary & 0x0F; // 后4位 } public double GetValue() { return (sign == 0 ? 1 : -1) * CompMantissa(m) * Math.Pow(2, e); } public override string ToString() { string s = string.Format("值:{0},指数部分:{1},小数部分:{2},二进制表示:{3}", GetValue(), e, m, BinaryString()); return s; } public string GetDetails() { StringBuilder sb = new StringBuilder(); sb.AppendLine("数值:" + GetValue()); sb.AppendLine("二进制表示:" + BinaryString()); sb.AppendLine("小数部分(二进制):" + (int)DEFAULT_MANTISSA + "." + Convert.ToString(m, 2).PadLeft(4, '0')); double manti = MiniFloat.CompMantissa(this.m); sb.AppendLine("小数部分(十进制):" + manti); sb.AppendLine("阶码:" + this.e); sb.AppendLine(GetValue() + " = " + manti + " * (2 ^ " + this.e + ")"); return sb.ToString(); } public string BinaryString() { return Convert.ToString((sign


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭