Arrays 将两个单精度值打包为一个

Arrays 将两个单精度值打包为一个,arrays,labview,Arrays,Labview,我在labview中使用非常受限的ram。我有两个数组需要单精度,因为我需要小数点。但是,单精度占用的空间太大,我使用的十进制值在0.00-1000.00之间 是否有一种直观的方法将这两个阵列打包在一起,以便节省一些空间?或者我可以采用不同的方法吗?如果需要表示0.00-1000.00,则有100000个值。不能用少于17(整)位表示的。这意味着要将两个数字放入,需要34位。34位显然超出了32位空间的容量。我建议你尽量限制你的价值空间。您可以将11位专用于整数值(0-1023),将5位专用于十

我在labview中使用非常受限的ram。我有两个数组需要单精度,因为我需要小数点。但是,单精度占用的空间太大,我使用的十进制值在0.00-1000.00之间


是否有一种直观的方法将这两个阵列打包在一起,以便节省一些空间?或者我可以采用不同的方法吗?

如果需要表示0.00-1000.00,则有100000个值。不能用少于17(整)位表示的。这意味着要将两个数字放入,需要34位。34位显然超出了32位空间的容量。我建议你尽量限制你的价值空间。您可以将11位专用于整数值(0-1023),将5位专用于十进制值(0到0.96875,以1/32或0.03125为单位)。然后,您将能够在一个32位空间中拟合两个十进制值


请记住,为此必须执行的额外位操作可能会对应用程序的性能产生很小的影响。

如果需要表示0.00-1000.00,则有100000个值。不能用少于17(整)位表示的。这意味着要将两个数字放入,需要34位。34位显然超出了32位空间的容量。我建议你尽量限制你的价值空间。您可以将11位专用于整数值(0-1023),将5位专用于十进制值(0到0.96875,以1/32或0.03125为单位)。然后,您将能够在一个32位空间中拟合两个十进制值


请记住,为此必须执行的额外位操作可能会对应用程序的性能产生很小的影响。

如果需要表示0.00-1000.00,则有100000个值。不能用少于17(整)位表示的。这意味着要将两个数字放入,需要34位。34位显然超出了32位空间的容量。我建议你尽量限制你的价值空间。您可以将11位专用于整数值(0-1023),将5位专用于十进制值(0到0.96875,以1/32或0.03125为单位)。然后,您将能够在一个32位空间中拟合两个十进制值


请记住,为此必须执行的额外位操作可能会对应用程序的性能产生很小的影响。

如果需要表示0.00-1000.00,则有100000个值。不能用少于17(整)位表示的。这意味着要将两个数字放入,需要34位。34位显然超出了32位空间的容量。我建议你尽量限制你的价值空间。您可以将11位专用于整数值(0-1023),将5位专用于十进制值(0到0.96875,以1/32或0.03125为单位)。然后,您将能够在一个32位空间中拟合两个十进制值


请记住,为此而必须进行的额外位操作可能会对应用程序的性能产生很小的影响。

首先,最好的一般建议是仔细检查您是否正确理解以及您的VI是否正确

如果您仍然需要将这些数据压缩到最小空间,可以执行以下操作:

  • 使用天花板(n/16)x 17 U16的二维阵列,而不是n值的一维阵列。每个U16将保存16个数据值中每个值的一位
  • 要从数组中读取值m,请从数组的第m/16行获取17个U16,并从每个U16中获取位(m MOD 16),然后将它们组合以创建所需的值
  • 要写入阵列,请获取相关的17个U16,将每个U16的相关位替换为表示新值的位,然后替换阵列中已更改的U16
我想这不会很快,但也许您可以针对需要对这些数据执行的特定操作对其进行优化


或者,您是否可以使用某种数据压缩?我想,如果你能将数据组织成包含一定数量的值的“页面”,那将是最好的。例如,您可以获取SGL的1D数组,将其展平为字符串,然后对字符串应用压缩,并将压缩后的字符串存储在字符串数组中。例如,我相信OpenG包括zip工具。

首先,最好的一般建议是仔细检查您是否正确理解以及您的VI是否正确

如果您仍然需要将这些数据压缩到最小空间,可以执行以下操作:

  • 使用天花板(n/16)x 17 U16的二维阵列,而不是n值的一维阵列。每个U16将保存16个数据值中每个值的一位
  • 要从数组中读取值m,请从数组的第m/16行获取17个U16,并从每个U16中获取位(m MOD 16),然后将它们组合以创建所需的值
  • 要写入阵列,请获取相关的17个U16,将每个U16的相关位替换为表示新值的位,然后替换阵列中已更改的U16
我想这不会很快,但也许您可以针对需要对这些数据执行的特定操作对其进行优化


或者,您是否可以使用某种数据压缩?我想,如果你能将数据组织成包含一定数量的值的“页面”,那将是最好的。例如,您可以获取SGL的1D数组,将其展平为字符串,然后对字符串应用压缩,并将压缩后的字符串存储在字符串数组中。例如,我相信OpenG包括zip工具。

首先,最好的一般建议是仔细检查您是否正确理解以及您的VI是否正确

如果您仍然需要将这些数据压缩到最小空间,可以执行以下操作:

  • 使用天花板(n/16)x 17 U16的二维阵列,而不是n值的一维阵列。每个U16将保存16个数据值中每个值的一位
  • 从中读取值m