Pavel Perevezencev Asked:2020-04-27 00:01:50 +0000 UTC2020-04-27 00:01:50 +0000 UTC 2020-04-27 00:01:50 +0000 UTC 从 short int 中获取浮点数(float) 772 有一个数字short int x = 29798_10 = 7466_16 = 0111 0100 0110 0110_2要完成float y = 011.1 0100 0110 0110_2 = 3.637451171875如何使用二元运算符得到这个数字? c 2 个回答 Voted Best Answer Fat-Zer 2020-04-27T00:32:17Z2020-04-27T00:32:17Z 适用于各种奇怪架构的干净且可移植的选项: float y = (float)x / (1U << (sizeof(short)*CHAR_BIT - 3)); 或者以一种简单的方式: float y = (float)x / 0x2000; MBo 2020-04-27T00:34:43Z2020-04-27T00:34:43Z 这是:011.1 0100 0110 0110_2根本不是浮点格式,而是定点数。并且不需要进行任何操作,知道点的位置就足够了。 要转换为浮点数,您需要除以 2^(16-k),其中 k 是到该点为止的位数。
适用于各种奇怪架构的干净且可移植的选项:
或者以一种简单的方式:
这是:
011.1 0100 0110 0110_2根本不是浮点格式,而是定点数。并且不需要进行任何操作,知道点的位置就足够了。要转换为浮点数,您需要除以 2^(16-k),其中 k 是到该点为止的位数。