Floating point 24位浮点指数
因此,在24位浮点的上下文中,我有一个问题: 如果我想通过对指数使用更多或更少的位来修改浮点。例如,我可能想用9位表示指数,15位表示尾数。如果我想使用表示172810和19174410的单一格式,有多少个指数位最合适Floating point 24位浮点指数,floating-point,exponent,Floating Point,Exponent,因此,在24位浮点的上下文中,我有一个问题: 如果我想通过对指数使用更多或更少的位来修改浮点。例如,我可能想用9位表示指数,15位表示尾数。如果我想使用表示172810和19174410的单一格式,有多少个指数位最合适 对于172810,二进制表示为11011000000,因此我的指数为138(10+128),因此我想使用8位来表示指数138(10001010)?您正在应用循环逻辑。指数10存储为10+128,因为128=2^7,是8位指数字段范围的一半。如果使用5位指数字段,则可以存储指数-1
对于172810,二进制表示为11011000000,因此我的指数为138(10+128),因此我想使用8位来表示指数138(10001010)?您正在应用循环逻辑。指数10存储为10+128,因为128=2^7,是8位指数字段范围的一半。如果使用5位指数字段,则可以存储指数-16到+16,指数10将存储为11010(26)。您正在应用循环逻辑。指数10存储为10+128,因为128=2^7,是8位指数字段范围的一半。如果使用5位指数字段,则可以存储指数-16到+16,指数10将存储为11010(26)。在构造非标准浮点格式时,分配给指数或有效位1的位数取决于您自己的需要。做你该做的事。指数偏差也可以选择为您服务。除了数学和逻辑的要求外,你在编故事时没有任何规则 您显示的两个数字1728和191744需要有效位中的十个显式位(存储九个),因为191744以位10111010112开始。指数(给定一个标准化为[1,2]的有效位)将是10和17,因此您需要能够在指数字段中编码八个值。但是,如果您想为无穷大/NaN保留一个指数编码,则需要九个值。因此,您的指数需要四位。(例如,您可以使用偏差为10的四位,这是不寻常但并非不可能的,因此00002表示指数10,01112表示指数17。这将使1728成为低于正常值的数字。)因此,表示1728和191744需要一个符号位、四个指数位和九个有效位,这就剩下了十个位供您按任意方式分配 自定义浮点格式通常仅对存储有用,并且仅在内存使用至关重要时才有用。在任何支持浮点的硬件上,本机浮点格式将比自定义格式的软件实现快得多。因此,通常最好将自定义格式转换为硬件支持的格式从存储器读取数据时,使用硬件格式执行所有计算(包括将中间值临时存储到存储器),并在长期存储之前转换回自定义格式
1有效位是首选项,而不是尾数。尾数是对数的(对数的小数部分),而有效位是线性的(浮点数的小数部分).在构造非标准浮点格式时,分配给指数或有效位1的位数取决于您自己的需要。做您需要做的事。指数偏差也可以为您服务。除了数学和逻辑的要求外,在编写时没有任何规则 您显示的两个数字1728和191744需要有效位中的十个显式位(存储九个),因为191744以位10111010112开始。指数(给定一个规范化为[1,2]的有效位)将是10和17,因此您需要能够在指数字段中编码八个值。但是,如果您想为无穷大/NaN保留一个指数编码,则需要九个值。因此,您的指数需要四位。(例如,您可以使用偏差为10的四位,这是不寻常但并非不可能的,因此00002表示指数10,01112表示指数17。这将使1728成为低于正常值的数字。)因此,表示1728和191744需要一个符号位、四个指数位和九个有效位,这就剩下了十个位供您按任意方式分配 自定义浮点格式通常仅对存储有用,并且仅在内存使用至关重要时才有用。在任何支持浮点的硬件上,本机浮点格式将比自定义格式的软件实现快得多。因此,通常最好将自定义格式转换为硬件支持的格式从存储器读取数据时,使用硬件格式执行所有计算(包括将中间值临时存储到存储器),并在长期存储之前转换回自定义格式
1有效位是首选项,而不是尾数。尾数是对数(对数的小数部分),而有效位是线性的(浮点数的小数部分)