Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 浮点作为整数二进制转换_Algorithm_Types_Type Conversion - Fatal编程技术网

Algorithm 浮点作为整数二进制转换

Algorithm 浮点作为整数二进制转换,algorithm,types,type-conversion,Algorithm,Types,Type Conversion,关于转换,我有一个问题: 我有一个整数,但我知道它代表一个浮点。以下是一些通信示例: 整数 浮动 16256 1 16262 1.05 16291 1.28 16298 1.33 这看起来像一个16位浮点表示,具有: 1符号位 8个指数位,127个偏差 7尾数位,带前导位约定 它被称为浮点格式 如果这是正确的,那么下面是一个JavaScript基本实现,用于将16位整数转换为其预期解释: 函数asFloat(i){ 设尾数=i&0x7F; 设指数=(i>>7)&0xFF; 设负=i>=0x

关于转换,我有一个问题:

我有一个整数,但我知道它代表一个浮点。以下是一些通信示例:

整数 浮动 16256 1 16262 1.05 16291 1.28 16298 1.33
这看起来像一个16位浮点表示,具有:

  • 1符号位
  • 8个指数位,127个偏差
  • 7尾数位,带前导位约定
它被称为浮点格式

如果这是正确的,那么下面是一个JavaScript基本实现,用于将16位整数转换为其预期解释:

函数asFloat(i){
设尾数=i&0x7F;
设指数=(i>>7)&0xFF;
设负=i>=0x8000;
//移除指数偏差并向尾数添加隐藏位
让结果=(1.0+尾数/128.0)*2**(指数-127);
返回负?-结果:结果;
}
控制台日志(asFloat(16256));

console.log(asFloat(16298))这看起来像一个16位浮点表示,带有:

  • 1符号位
  • 8个指数位,127个偏差
  • 7尾数位,带前导位约定
它被称为浮点格式

如果这是正确的,那么下面是一个JavaScript基本实现,用于将16位整数转换为其预期解释:

函数asFloat(i){
设尾数=i&0x7F;
设指数=(i>>7)&0xFF;
设负=i>=0x8000;
//移除指数偏差并向尾数添加隐藏位
让结果=(1.0+尾数/128.0)*2**(指数-127);
返回负?-结果:结果;
}
控制台日志(asFloat(16256));

console.log(asFloat(16298))给定足够的示例,您可以找到一种方法来实现它,但这确实是一种很难实现的方法。如果你知道浮点数的二进制格式,那就容易多了。如果有足够的样本,你可以找到一种方法来实现它,但这确实是一种困难的方法。如果你知道浮点数的二进制格式,那就容易多了。非常感谢,你是如何找到尾数和指数的?16256的二进制表示法的序列是1111111,然后只有0。由于指数偏差非常常见,我们得到的信息是,这表示1(指数为0),我假设这1111111表示指数偏差(即127)。不应该有其他的1位,因为从尾数中隐藏最重要的1位是很常见的,而且因为数字1只有1位,所有二进制1位必须属于指数。非常感谢,你是如何找到尾数和指数的?16256的二进制表示有一个1111111的序列,然后只有0。由于指数偏差非常常见,我们得到的信息是,这表示1(指数为0),我假设这1111111表示指数偏差(即127)。不应该有其他1位,因为从尾数中隐藏最重要的1位是常见的,而且数字1只有1位,所以所有二进制1位必须属于指数。