gpt4 book ai didi

pseudocode - 将十进制数字数组转换为二进制数字数组

转载 作者:行者123 更新时间:2023-12-04 14:43:23 26 4
gpt4 key购买 nike

这可能是一个非常奇特的问题。

我的问题如下:

TI 83+ 图形计算器允许您使用程序集和连接到计算机的连接电缆或其内置的 TI-BASIC 编程语言对其进行编程。

根据我的发现,它仅支持 16 位整数和一些模拟 float 。

但是我想使用更大的数字(大约 64 位),因此为此我使用了一个包含单个数字的数组:

{1, 2, 3, 4, 5}

将是十进制的 12345。

在二进制中,这是 110000 00111001,或者作为二进制数字数组:

{1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1}

计算器将如何显示它。

我如何将这个十进制数字数组(对于计算器而言太大,无法将其显示为 native 类型)转换为十进制数字数组?

效率不是问题。这不是家庭作业。

这样我就可以自由地为此类数组等实现加法。

谢谢!

最佳答案

考虑了一下,我想我会用下面的“算法”来做

  • 检查最后一位数字(示例中为 5)
  • 如果是奇数,则在二进制数组中(从倒序开始)存储一个1

  • 现在通过以下方法将数字除以 2:

  • 从第一个数字开始并清除“进位”变量。
  • 将其除以 2 并添加“进位”变量。如果余数是 1(在用 and&1 除法之前检查这个)然后将 5 放入进位
  • 重复直到完成所有数字

再次重复这两个步骤,直到整数减少到 0。

二进制数组中的数字是二进制表示

你的例子:1,2,3,4,5

  • 5 是奇数,所以我们将 1 存储在二进制数组中:1
  • 我们使用以下算法将数组除以 2:
  • 0,2,3,4,5 => 0,1+5,3,4,5 => 0,6,1,4,5 => 0,6,1,2+5,5 = > 0,6,1,7,2

然后重复:

0,6,1,7,2 最后一位是偶数所以我们存储一个 0:0,1(注意我们从右到左填充二进制字符串)

等等

你最终得到一个二进制文件

编辑:上面只是澄清一下:我所做的只是古老的算法:

 int value=12345;
while(value>0)
{
binaryArray.push(value&1);
value>>=1; //divide by 2
}

除了在您的示例中,我们没有 int 而是一个表示(10 基)int 的数组;^)

关于pseudocode - 将十进制数字数组转换为二进制数字数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1657014/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com