将负十进制转换为十六进制浮点

时间:2016-02-21 08:36:53

标签: floating-point hex type-conversion

我正在尝试将-75转换为十六进制浮点。该浮点由1个符号位,5个指数位,10个mantisse位和bias = 15组成。我能够将-75转换为F 0000E 4B00000000。但我不完全确定隐藏位系统如何以这种十六进制表示法工作?我怀疑它不存在,因为在二进制系统中有16个不同的十六进制数字(0-F)而不是2(0-1)。

所以这就是我所做的:

vm.product = new Product();
vm.save = function() {
            vm.product.$save(
                function(data) {
                    vm.message = "... Save Complete";
                },
                function(response) {
                    vm.message = response.statusText + "\r\n";
                    if (response.data.modelState) {
                        for (var key in response.data.modelState) {
                            vm.message += response.data.modelState[key] + "\r\n";
                        }
                    }
                    if (response.data.exceptionMessage)
                        vm.message += response.data.exceptionMessage;
                });
        };

这是对的吗?

1 个答案:

答案 0 :(得分:0)

正如Patricia Shanahan在你的问题的评论中已经说过,“bit”不太可能被解释为完整的十六进制数字。据我所知,有点总是“ bi nary digi t ”。

您描述的格式只有16位。那只是4个十六进制数字。

事实上,您的格式听起来与half-precision完全相同,也称为 binary16

我建议你首先解决这个问题。你得到16位bb...b

bbbbbbbb bbbbbbbb
\  /\  / \  /\  /
 ¯¯  ¯¯   ¯¯  ¯¯

然后将16位二进制数字分组为四个组,以获得四位十六进制数字。

免责声明:我们无法确定您的数字格式,因此我的解决方案是一种合格的猜测。