如何将二进制指数为-10的数字转换为浮点数?
How do convert number with binary exponent -10 into float?
我正在 iOS 上使用低功耗蓝牙设备 Swift 接收一些数据。所述数据在 https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.csc_measurement.xml 中指定为 uint16。它使用二进制指数表示,但我找不到如何将其转换为浮点数以进一步使用它。
Last Wheel Event Time Information: Unit has a resolution of 1/1024s.
Unit: org.bluetooth.unit.time.second
Exponent: Binary, -10
我想只计算 10 位,并将第一段用作小数点之前的部分,将第二段用作小数点后的部分。但是结果好像不对。
非常感谢任何提示或解决方案。
非常感谢。
-10 的二进制指数与将 uint16 值转换为 Double 并除以 1024.0(或乘以 2 的 1.0 到第 10 次)相同。
进一步扩展 hotpaw2 的上述答案-
一般:
Exponent: Binary, 0 => 001 => 1 decimal
Exponent: Binary, -1 => 0.1 => 1/(2^1) => 1/2 => 0.5 decimal
Exponent: Binary, -2 => 0.01 => 1/(2^2) => 1/4 => 0.25 decimal
Exponent: Binary, -3 => 0.001 => 1/(2^3) => 1/8 => 0.125 decimal
现在针对循环功率测量特性的蓝牙 SIG 规范中定义的特定情况
上轮事件时间信息:单位分辨率为1/1024s。
单位:org.bluetooth.unit.time.second
指数:二进制,-10
. Exponent: Binary,-10 => 0.0000000001 => 1/(2^10) => 1/1024 => 0.0009765625 decimal
现在对于从peripheral/server进来的分辨率为1/1024s的BLE特征值数据包:. Last_revolution_event_time
Time(seconds) = Last_revolution_event_time * 1/1024
我正在 iOS 上使用低功耗蓝牙设备 Swift 接收一些数据。所述数据在 https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.csc_measurement.xml 中指定为 uint16。它使用二进制指数表示,但我找不到如何将其转换为浮点数以进一步使用它。
Last Wheel Event Time Information: Unit has a resolution of 1/1024s.
Unit: org.bluetooth.unit.time.second
Exponent: Binary, -10
我想只计算 10 位,并将第一段用作小数点之前的部分,将第二段用作小数点后的部分。但是结果好像不对。
非常感谢任何提示或解决方案。
非常感谢。
-10 的二进制指数与将 uint16 值转换为 Double 并除以 1024.0(或乘以 2 的 1.0 到第 10 次)相同。
进一步扩展 hotpaw2 的上述答案-
一般:
Exponent: Binary, 0 => 001 => 1 decimal
Exponent: Binary, -1 => 0.1 => 1/(2^1) => 1/2 => 0.5 decimal
Exponent: Binary, -2 => 0.01 => 1/(2^2) => 1/4 => 0.25 decimal
Exponent: Binary, -3 => 0.001 => 1/(2^3) => 1/8 => 0.125 decimal
现在针对循环功率测量特性的蓝牙 SIG 规范中定义的特定情况
上轮事件时间信息:单位分辨率为1/1024s。
单位:org.bluetooth.unit.time.second
指数:二进制,-10
. Exponent: Binary,-10 => 0.0000000001 => 1/(2^10) => 1/1024 => 0.0009765625 decimal
现在对于从peripheral/server进来的分辨率为1/1024s的BLE特征值数据包:. Last_revolution_event_time
Time(seconds) = Last_revolution_event_time * 1/1024