存储 64 位整数的 NaN 有效载荷
NaN payload storing 64 bit ints
我最近发现了 nan boxing 这个话题,我也在尝试构建一种动态类型的编程语言,所以 nan boxing 似乎是表示类型的选择,但我仍然很困惑,其中之一我将如何存储像 64 位整数这样的数据,我认为可行的一种方法是堆分配它们,因为它减少了大小,因为现在它指向内存而不是整个整数,但这不会很慢且效率低下?这个问题的一部分来自我的其他困惑:如果 javascript 使用 IEEE 754 双精度数(那么它不会被限制为 32 位整数吗?)如何表示高达 Number.MAX_SAFE_INTEGER 的数字,抱歉,如果我听起来很愚蠢我只是这种按位的新手。
我想我明白了,我真的很愚蠢,因为无论如何 nans 都是双精度的,而双精度是 64 位的,我可以像 javascript 那样将所有数字表示为双精度并将其存储为 32 位 int如果可能的话,因为整数在可能的情况下更快,如果可能的话,我希望得到进一步的反馈。
我最近发现了 nan boxing 这个话题,我也在尝试构建一种动态类型的编程语言,所以 nan boxing 似乎是表示类型的选择,但我仍然很困惑,其中之一我将如何存储像 64 位整数这样的数据,我认为可行的一种方法是堆分配它们,因为它减少了大小,因为现在它指向内存而不是整个整数,但这不会很慢且效率低下?这个问题的一部分来自我的其他困惑:如果 javascript 使用 IEEE 754 双精度数(那么它不会被限制为 32 位整数吗?)如何表示高达 Number.MAX_SAFE_INTEGER 的数字,抱歉,如果我听起来很愚蠢我只是这种按位的新手。
我想我明白了,我真的很愚蠢,因为无论如何 nans 都是双精度的,而双精度是 64 位的,我可以像 javascript 那样将所有数字表示为双精度并将其存储为 32 位 int如果可能的话,因为整数在可能的情况下更快,如果可能的话,我希望得到进一步的反馈。